2010-11-22 9 views
13

Wiem, że protokół HTTP keep-alive jest domyślnie włączony w HTTP 1.1, ale chcę znaleźć sposób na potwierdzenie, że faktycznie działa.Sposób testowania HTTP Keep alive działa w rzeczywistości

Czy ktoś wie o prosty sposób przetestowania z przeglądarki internetowej (EG, jak sens z wireshark). Wiem, że muszę szukać wielu żądań HTTP przez to samo połączenie TCP, ale nie wiem, jak to potwierdzić w wireshark lub w jakikolwiek inny sposób.

Dzięki!

Odpowiedz

4

Jeśli korzystasz z systemu Windows Vista lub nowszego, możesz skorzystać z Menedżera zasobów. Karta Sieć wyświetli wszystkie otwarte połączenia TCP i proces, w którym zostały uruchomione. Otwórz przeglądarkę za pomocą jednej karty, przejdź do swojej strony i przetestuj.

+0

Dzięki za to. Nie mam Menedżera zasobów (myślę, że jest to dla serwerów), ale użyłem TCPView z sysinternals. Pomaga (nadal mylące!). – sub

+0

Można również po prostu uruchomić 'netstat'. – Brad

16

Jak Ron Garrity said on ServerFault, można użyć Curl takiego:

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

I Wyjścia te dwa wiersze jeśli keep-alive pracuje:

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

A jeśli keep-alive nie działa, to po prostu wyprowadza tę linię:

* Closing connection #0 
0

Po pierwsze, spróbuj uchwycić ruch na rynku strona et w Wireshark i ograniczyć je do tego, co trzeba z filtrem jak:

tcp port 80 and host targetwebsite.com 

Następnie załadować stronę w przeglądarce lub pobrać go dowolnym narzędziem masz. Jeśli docelowa strona internetowa odświeża się lub zawiera jedną z wartości w nim zawartych, pozostaw ją otwartą, dopóki nie wprowadzisz co najmniej jednej zmiany.

Teraz masz wystarczającą ilość danych i możesz zatrzymać przechwytywanie w Wireshark.

Powinieneś zobaczyć dziesiątki rekordów, a ich protokół powinien być protokołem TCP lub HTTP. Do celów twojego szybkiego prostego sprawdzenia nie będziesz potrzebował rekordów TCP. Usuńmy je, stosując inny filtr. W górnej części okna znajduje się pole "filtr". Wpisz tam http, a wireshark ukryje wszystkie rekordy, ale te, które mają protokół HTTP.

Teraz wybierz rekord i przejrzyj kolejny poziom szczegółów, który znajdziesz w drugim polu poniżej wszystkich rekordów. Aby upewnić się, że patrzysz we właściwe miejsce, pierwsza linia zaczyna się od "Ramki XYZ". Czwarta linia zaczyna się od "Protokołu kontroli transmisji". Wyszukaj numery portów po "Port SRC" i "Port DST:". W zależności od rekordu jeden z tych numerów należy do serwera WWW (zwykle 80), a drugi pokazuje numer portu na końcu.

Teraz sprawdź kilka różnych rekordów GET. Aby sprawdzić, czy żądanie jest rekordem GET, sprawdź kolumnę Informacje. Jeśli numery portów w twoim końcu są używane kilka razy, wszystkie te żądania zostały wykonane przez HTTP keepalive.

Należy pamiętać, że większość przeglądarek otwiera wiele połączeń, nawet jeśli serwer internetowy obsługuje funkcję keepalive. NIE PODEJMUJ swojej oceny, znajdując tylko jeden inny port.

Powiązane problemy