Как протестировать HTTP Keep live на самом деле работает

Я знаю, что HTTP-keep-alive включен по умолчанию в HTTP 1.1, но я хочу найти способ подтвердить, что он действительно работает.

Кто-нибудь знает простой способ тестирования из веб-браузера (EG, как разобраться в wirehark). Я знаю, что мне нужно искать несколько HTTP-запросов по одному и тому же TCP-соединению, но я не знаю, как подтвердить это в wirehark или любым другим способом.

Спасибо!

Ответы

Ответ 1

Как Рон Гаррити сказал в ServerFault, вы можете использовать Curl например:

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

И он выводит эти две строки, если работает keep-alive:

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

И если keep-alive не работает, он просто выводит эту строку:

* Closing connection #0

Ответ 2

Если вы работаете в Windows Vista или более поздней версии, вы можете использовать диспетчер ресурсов. На вкладке "Сеть" будут указаны все открытые TCP-соединения и процесс, с которым они были запущены. Откройте браузер с одной вкладкой, перейдите на страницу и проверьте.

Ответ 3

Сначала попробуйте захватить трафик на целевой сайт в Wireshark и ограничьте его тем, что вам нужно, с фильтром, например:

tcp port 80 and host targetwebsite.com

Затем загрузите страницу в браузере или выберите ее любым инструментом. Если целевая веб-страница освежает себя или одно из значений в ней, оставьте ее открытой, пока в ней не будет хотя бы одного изменения.

Теперь у вас достаточно данных, и вы можете остановить процедуру захвата в Wireshark.

Вы должны увидеть десятки записей, а их протокол должен быть TCP или HTTP. Для вашей быстрой простой проверки вам не понадобятся записи TCP. Таким образом, удалите их, применив другой фильтр. В верхней части окна есть поле "фильтр". Введите http там, и wirehark скроет все записи, кроме тех, которые имеют протокол HTTP.

Теперь выберите запись и посмотрите на следующий уровень деталей, который вы можете найти во втором поле ниже всех записей. Чтобы убедиться, что вы смотрите в нужное место, первая строка начинается с "Frame XYZ". Четвертая строка начинается с "Протокола управления передачей". Найдите номера портов после "Порт SRC" и "Порт DST:". В зависимости от записи один из этих номеров принадлежит веб-серверу (обычно 80), а другой показывает номер порта в конце.

Теперь проверьте несколько разных записей GET. Чтобы узнать, является ли запрос GET-записью, проверьте столбец Info. Если номера портов в конце используются несколько раз, все эти запросы были сделаны через HTTP keepalive.

Помните, что большинство браузеров откроют несколько подключений, даже если веб-сервер поддерживает keepalive. Итак, НЕ завершайте свою оценку, найдя только один другой порт.