J'essaie de comprendre ce que sont les connexions HTTP en attente et les connexions HTTP persistantes, et d'essayer d'établir une connexion entre ces deux sujets et la technologie des événements Server Sent.HTTP: quelles sont les relations entre pipelining, keep-alive et Server Sent Events?
Pour autant que je comprends, connexion HTTP keep-alive est la valeur par défaut dans HTTP 1.1 façon d'utiliser TCP lorsque la connexion établie une fois TCP est utilisé pour envoyer plusieurs requêtes HTTP un par un. HTTP pipelining est la capacité du client à envoyer des requêtes au serveur alors que les réponses aux demandes précédentes ne sont pas encore reçus en utilisant la même connexion TCP, généralement pas utilisé comme un moyen par défaut dans les navigateurs.
Mes questions:
1) s'il est possible d'envoyer plusieurs demandes au serveur l'un après l'un à l'aide d'une connexion TCP - comment le client peut établir une distinction entre les réponses? Je suppose que le client utilise l'ordre FIFO d'envoyer des réponses par serveur?
2) Pourquoi les demandes non-idempotents telles que les requêtes POST ne doivent pas être pipelinées (selon wikipedia)?
3) Qu'en est-il des limites du serveur web: le nombre de connexions TCP ouvertes possibles limitées? Si oui, si un certain nombre de clients ont des connexions persistantes, les autres ne peuvent pas établir de connexions, ce qui peut entraîner un problème, n'est-ce pas?
4) Les événements sont envoyés du serveur en utilisant la connexion toujours en vie, mais, pour autant que je comprends, SSE n'utilisent pas pipelining. Au lieu de cela, ils parviennent à traiter plusieurs réponses à une demande, ou peuvent simplement envoyer une autre requête lorsque la réponse suivante avec l'événement est arrivée. Quelle est la bonne supposition?
5) Une connexion TCP signifie une prise? Une socket signifie une connexion TCP? La fermeture/ouverture de la prise signifie la fermeture/ouverture de la connexion TCP?
Merci porneL! 1) Mais que se passe-t-il si certaines réponses sont arrivées dans le mauvais ordre par rapport à la commande envoyée? 3) Quel est l'avantage d'utiliser un proxy? il doit établir les mêmes connexions avec le serveur de toute façon? 4) L'utilisation de SSE implique donc une connexion +1 augmentant ainsi le chargement du serveur? – KutaBeach
@KutaBeach J'ai étendu ma réponse – Kornel