2010-11-22 4 views
13

Ich weiß, HTTP Keep-Alive ist standardmäßig in HTTP 1.1, aber ich möchte einen Weg finden, um zu bestätigen, dass es tatsächlich funktioniert.Wie HTTP zu testen Keep alive funktioniert tatsächlich

Kennt jemand eine einfache Möglichkeit, von einem Webbrowser zu testen (EG, wie man Drahtshark sinnvoll macht). Ich weiß, dass ich nach mehreren HTTP-Anfragen über dieselbe TCP-Verbindung suchen muss, aber ich weiß nicht, wie ich das in Wireshark oder auf andere Weise bestätigen kann.

Danke!

Antwort

4

Wenn Sie Windows Vista oder höher verwenden, können Sie den Ressourcen-Manager verwenden. Die Registerkarte Netzwerk listet alle offenen TCP-Verbindungen und den Prozess auf, mit dem sie gestartet wurden. Öffnen Sie einen Browser mit einem Tab, navigieren Sie zu Ihrer Seite und testen Sie sie.

+0

Danke dafür. Ich habe keinen Ressourcen-Manager (ich denke, das ist für Server), aber ich habe TCPView von sysinternals verwendet. Es hilft (immer noch verwirrend !!!) – sub

+0

Sie könnten auch einfach "netstat" ausführen. – Brad

16

Als Ron Garrity said on ServerFault, können Sie Curl wie folgt verwenden:

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

Und es gibt diese zwei Zeilen, wenn Keep-Alive funktioniert:

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

Und wenn Keepalive nicht funktioniert, dann gibt es nur diese Zeile aus:

0

Versuchen Sie zunächst, den Verkehr zum Targ zu erfassen et Webseite in Wireshark und beschränken sie auf das, was Sie mit einem Filter benötigen wie:

tcp port 80 and host targetwebsite.com 

Dann die Seite in einem Browser laden oder holen sie von jedem Werkzeug, das Sie haben. Wenn die Zielwebseite sich selbst oder einen der darin enthaltenen Werte aktualisiert, lassen Sie sie offen, bis mindestens eine Änderung vorgenommen wurde.

Jetzt haben Sie genug Daten und Sie können die Erfassung in Wireshark stoppen.

Sie sollten Dutzende von Datensätzen sehen und ihr Protokoll sollte TCP oder HTTP sein. Für den Zweck Ihrer schnellen, einfachen Überprüfung benötigen Sie keine TCP-Datensätze. Also, lassen Sie sie entfernen, indem Sie einen anderen Filter anwenden. Oben im Fenster befindet sich ein "Filter" -Feld. Geben Sie http dort ein, und wireshark wird alle Datensätze außer denen mit einem HTTP-Protokoll ausblenden.

Wählen Sie nun einen Datensatz aus und schauen Sie sich die nächste Detailebene an, die Sie in der zweiten Box unter allen Datensätzen finden. Um sicher zu sein, dass Sie den richtigen Ort suchen, beginnt die erste Zeile mit "Frame XYZ". Die vierte Zeile beginnt mit "Transmission Control Protocol". Suchen Sie nach "SRC Port" und "DST Port:" nach den Portnummern. Je nach Datensatz gehört eine dieser Nummern zum Webserver (normalerweise 80) und die andere zeigt die Portnummer an Ihrem Ende.

Überprüfen Sie jetzt ein paar verschiedene GET-Datensätze. Um zu wissen, ob die Anforderung ein GET-Datensatz ist, überprüfen Sie die Spalte Info. Wenn die Portnummern an Ihrem Ende mehrmals verwendet werden, wurden alle diese Anforderungen über HTTP-Keepalive gestellt.

Denken Sie daran, dass die meisten Browser mehrere Verbindungen öffnen, auch wenn der Webserver Keepalive unterstützt. Schließen Sie Ihre Bewertung NICHT ab, indem Sie nur einen anderen Port finden.

Verwandte Themen