Où ces informations sont-elles conservées ("cette connexion est entre l'ordinateur A
et le serveur F
")?
Une connexion TCP est reconnue par l'IP source et le port et l'IP et le port de destination. Votre système d'exploitation, tous les périphériques intermédiaires prenant en charge les sessions et le système d'exploitation du serveur reconnaîtront la connexion de cette manière.
HTTP fonctionne avec demande-réponse: le client se connecte au serveur, effectue une demande et obtient une réponse. Sans keep-alive, la connexion à un serveur HTTP est fermée après chaque réponse. Avec HTTP keep-alive, vous gardez la connexion TCP sous-jacente ouverte jusqu'à ce que certains critères soient remplis.
Cela permet plusieurs paires demande-réponse sur une seule connexion TCP, éliminant une partie du démarrage de connexion relativement lent de TCP.
Lorsque IIS (F) envoie un en-tête Keep Alive (ou que l'utilisateur envoie keep-alive), cela signifie-t-il que (E, C, B) enregistre une connexion
Non. Les routeurs n'ont pas besoin de se souvenir des sessions. En fait, plusieurs paquets TCP appartenant à la même session TCP ne doivent pas tous passer par les mêmes routeurs - c'est à TCP à gérer. Les routeurs choisissent simplement le meilleur chemin IP et transfèrent les paquets. Keep-alive est uniquement pour le client, le serveur et tout autre périphérique intermédiaire prenant en charge les sessions.
qui est uniquement pour ma session?
Cela signifie-t-il que personne d'autre ne peut utiliser cette connexion
C'est l' intention des connexions TCP : c'est une connexion de bout en bout destinée uniquement à ces deux parties.
Si tel est le cas - cela signifie-t-il que Keep Alive-header - réduit le nombre d'utilisateurs de connexion superposés?
Définissez «connexions superposées». Voir Connexion persistante HTTP pour certains avantages et inconvénients, tels que:
- Utilisation moindre du processeur et de la mémoire (car moins de connexions sont ouvertes simultanément).
- Active le pipelining HTTP des demandes et des réponses.
- Réduction de la congestion du réseau (moins de connexions TCP).
- Réduction de la latence dans les requêtes ultérieures (pas de handshaking).
dans l'affirmative, pendant combien de temps la connexion m'est-elle enregistrée? (en d'autres termes, si je mets en vie - "garder" jusqu'à quand?)
Une réponse typique de keep-alive ressemble à ceci:
Keep-Alive: timeout=15, max=100
Voir l'en -tête Keep-Alive du protocole HTTP (Hypertext Transfer Protocol) par exemple (un brouillon pour HTTP / 2 où l'en-tête keep-alive est expliqué plus en détail que 2616 et 2086 ):
Un hôte définit la valeur du timeout
paramètre sur la durée pendant laquelle l'hôte permettra à une connexion inactive de rester ouverte avant qu'elle ne soit fermée. Une connexion est inactive si aucune donnée n'est envoyée ou reçue par un hôte.
Le max
paramètre indique le nombre maximum de requêtes qu'un client fera ou qu'un serveur autorisera à effectuer sur la connexion persistante. Une fois que le nombre spécifié de demandes et de réponses a été envoyé, l'hôte qui a inclus le paramètre peut fermer la connexion.
Cependant, le serveur est libre de fermer la connexion après un temps ou un nombre de requêtes arbitraires (du moment qu'il renvoie la réponse à la requête en cours). La manière dont cela est implémenté dépend de votre serveur HTTP.