Как я могу проверить HTTP Pipelinning?

Я пытаюсь проверить, есть ли у сайта / сервера / чего-либо еще возможность передавать HTTP-запрос.

Пока, я думаю, что можно отправить несколько запросов через один curl сессия, как:
curl http://www.example.com/1.html http://www.example.com/main.css http://www.example.com/2.html

Возможно ли использовать упомянутое ниже для симуляции конвейерной обработки и как я могу на самом деле проверить, чем конвейерная обработка использовалась?

Я Ласо думаю об использовании netcatотправьте несколько запросов и проверьте, вернется ли он в правильном порядке (в соответствии с запросом RFC)

Не могли бы вы дать мне несколько советов о том, как проверить, что контент был передан по конвейеру? (В лучшем случае на linux, но не обязательно.)

1 ответ

Решение

Я только что проверил с помощью tcpdump, и похоже, что простой вызов curl, который вы предлагаете, на самом деле не передает запросы. Страница man утверждает, что они выбираются последовательно, что также предполагает отсутствие конвейерной обработки.

Когда я проверял это в прошлом, я просто вставил полные запросы HTTP 1.1 в сеанс telnet.

Чтобы проверить, оставьте tcpdump запущенным в другом окне, например, "tcpdump -nli any -s0 -xX host 1.2.3.4 и port 80". Если вы попробуете командную строку curl, вы увидите, что первый запрос отправлен, ответ получен, а затем второй. Если вы правильно передаете данные по конвейеру, вы должны увидеть несколько строк GET, отправляемых до того, как вернутся какие-либо данные ответа.

Это похоже на домашнее задание, поэтому я оставлю тебя там.

Другие вопросы по тегам