2010-11-22 29 views
13

Je sais que HTTP keep-alive est activé par défaut dans HTTP 1.1 mais je veux trouver un moyen de confirmer qu'il fonctionne réellement.Comment tester HTTP Keep alive fonctionne réellement

Est-ce que quelqu'un connaît un moyen simple de tester à partir d'un navigateur Web (par exemple, comment donner un sens à wireshark). Je sais que je dois rechercher plusieurs requêtes HTTP sur la même connexion TCP mais je ne sais pas comment confirmer cela dans wireshark ou de toute autre manière.

Merci!

Répondre

4

Si vous utilisez Windows Vista ou version ultérieure, vous pouvez utiliser le Gestionnaire de ressources. L'onglet Réseau répertorie toutes les connexions TCP ouvertes et le processus par lequel elles ont été démarrées. Ouvrez un navigateur avec un onglet, naviguez jusqu'à votre page et testez.

+0

Merci pour cela. Je n'ai pas de gestionnaire de ressources (je pense que c'est pour les serveurs), mais j'ai utilisé TCPView de sysinternals. Cela aide (encore déroutant cependant!) – sub

+0

Vous pouvez également simplement lancer 'netstat'. – Brad

16

Comme Ron Garrity said on ServerFault, vous pouvez utiliser Curl comme ceci:

curl -Iv http://www.aptivate.org 2>&1 | grep -i 'connection #0' 

Et il émet ces deux lignes si keep-alive travaille:

* Connection #0 to host www.aptivate.org left intact 
* Closing connection #0 

Et si keep-alive ne fonctionne pas, alors il sort juste cette ligne:

* Closing connection #0 
0

D'abord, essayez de capturer le trafic à la cible et site web dans Wireshark et limiter à ce que vous avez besoin d'un filtre comme:

tcp port 80 and host targetwebsite.com 

charger ensuite la page dans un navigateur ou chercher par un outil que vous avez. Si la page Web cible s'actualise ou contient l'une des valeurs, laissez-la ouverte jusqu'à ce que vous en ayez au moins une.

Maintenant vous avez assez de données et vous pouvez arrêter la procédure de capture dans Wireshark.

Vous devriez voir des dizaines d'enregistrements et leur protocole devrait être TCP ou HTTP. Dans le but de votre vérification simple et rapide, vous n'aurez pas besoin d'enregistrements TCP. Donc, permet de les supprimer en appliquant un autre filtre. En haut de la fenêtre, il y a un champ "filtre". Tapez http là, et wireshark cachera tous les enregistrements sauf ceux qui ont un protocole HTTP.

Maintenant, sélectionnez un enregistrement et regardez le prochain niveau de détails, que vous pouvez trouver dans la deuxième case ci-dessous tous les enregistrements. Juste pour être sûr que vous regardez au bon endroit, la première ligne commence par "Frame XYZ". La quatrième ligne commence par "Transmission Control Protocol". Recherchez les numéros de port après "Port SRC" et "Port DST:". Selon l'enregistrement, l'un de ces numéros appartient au serveur Web (généralement 80) et l'autre indique le numéro de port de votre côté.

Maintenant, vérifiez quelques enregistrements GET différents. Pour savoir si la requête est un enregistrement GET, vérifiez la colonne Info. Si les numéros de port dans votre extrémité sont utilisés plusieurs fois, toutes ces demandes ont été effectuées via HTTP keepalive. N'oubliez pas que la plupart des navigateurs ouvrent plusieurs connexions, même si le serveur Web prend en charge keepalive. Donc, NE PAS conclure votre évaluation en trouvant un seul port différent.