"Garder-vivre" c'est là-bas dans http. Certains dit que ça devrait être utilisé, mais je ne suis pas en mesure d'obtenir une conclusion. Alors, veuillez fournir votre entrée / réponse / vues afin que je puisse obtenir un terrain pour cela, p>
Qu'est-ce que c'est? P> li>
scénario où il devrait et ne devrait pas être fait? P> li>
Comment cela peut rendre une application AJAX mieux? P> li>
Les risques ont et ne sont pas si jamais? p>
Merci à tous pour les intrants. P> li> ol>
3 Réponses :
Tout d'abord si votre connexion au serveur utilise http / 1.1, vous utilisez probablement déjà "Garder-Alive". P>
Qu'est-ce que c'est? Logiquement http est un protocole sans connexion. C'est chaque requête / réponse au serveur crée une nouvelle connexion, son entreprise et dépose la connexion. Cependant, dans HTTP / 1.1, le comportement par défaut consiste à conserver la connexion ouverte à l'aide des demandes suivantes sur le serveur. L'en-tête "Keep-Alive" a été ajouté à http / 1.0 pour permettre que ce comportement soit opté dans, dans http / 1.1, le serveur doit être désactivé en fermant la connexion elle-même et / ou en envoyant une en-tête "Connexion-ferme" dans réponse. p>
Pourquoi est-ce bénéfique? Créer une connexion, en particulier celle qui doit être authentifiée peut prendre un certain temps. En utilisant une connexion existante, l'effort de configuration et d'authentification est beaucoup réduit. P>
Comment peut-il rendre votre application Ajax meilleure? Vous vous en profitez probablement déjà. P>
Quels sont les risques? Lorsque vous effectuez une connexion via un appareil partagé, ce qui peut rendre une connexion au serveur dans le nom des clients, il est possible que d'autres clients de réutiliser la connexion, ce qui permet également aux autres clients d'utiliser une connexion au serveur que le serveur a authentifié pour un utilisateur différent. p>
Il "permet aux autres clients d'utiliser une connexion au serveur authentifié pour un utilisateur différent" - je ne comprends pas celui-là. HTTP est apatride, de sorte que les clients multiples utilisent la même connexion TCP ne comptent sûrement pas d'importance?
Http est "logiquement" apatride mais une connexion n'est pas. Dans la plupart des cas, la connexion est anonyme et ne porte aucune signification. Cependant, l'authentification est souvent effectuée au niveau de la connexion (par exemple NTLM sur IIS) où une fois une connexion établie, plusieurs demandes partageront le même état authentifié de la connexion.
Plusieurs demandes partageront le même état authentifié de la connexion B> n'implique pas permettent aux autres clients d'utiliser une connexion au serveur authentifié pour un utilisateur différent B>, en supposant une autre. l'utilisateur est un processus différent. Une connexion est spécifique au processus et est surveillée au niveau du système d'exploitation. Un autre processus ne peut pas Partager B> la même connexion qui a été authentifiée pour un processus différent.
Vraiment, il se résume à des questions de performance et de ressource. P>
L'utilisation d'un haut (ER) continue vivant réduit la latence sur les demandes. Ceci est particulièrement un problème si vous courez sur SSL où il existe des poignées de main supplémentaires pour établir une connexion. p>
OTOH, cela signifiera qu'il existe des processus de serveur supplémentaires.Trheads assis ralenti, en attente d'une demande ultérieure ou de l'expiration de la maintenance. Cela peut la mémoire de porc et donc ralentir votre serveur. P>
Vous devez donc vraiment jouer et voir ce qui est acceptable dans les termes de la charge du serveur de navigateur VS Server. P>
Authentification (base / digest / session basée) n'est pas pertinente - c'est la demande authentifiée - pas la connexion à la prise. P>
Notez que la dernière fois que j'ai fait une nouvelle installation Apache, il est venu avec un réglage par défaut de 5 secondes pour le conserver en vie. Ceci est ridiculement long pour un site non Ajax. P>
c. p>