HTTP HEAD метод и конвейерная обработка - PullRequest
4 голосов
/ 10 марта 2010

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

HTTP RFC утверждает, что запрос HEAD должен вызывать точно такой же ответ, что и GET, за исключением того, что тело сообщения не отправляется. Кажется, это подразумевает, что заголовок Content-Length будет включен.

Если используется HTTP Pipelining , я не вижу, как бы вы надежно проанализировали конвейерный ответ на HEAD, не увидев запрос; заголовки не будут правильно указывать длину ответа, нет Transfer-Encoding, и соединение не обязательно будет закрыто в конце.

Есть идеи? Может ли кто-нибудь увидеть какие-либо другие типы ответов, которые не могут быть проанализированы без просмотра запроса?

1 Ответ

3 голосов
/ 23 марта 2010

Я согласен. Невозможно знать, что ответ на запрос не имеет тела объекта, даже если заголовок ContentLength, по-видимому, подразумевает обратное. По этой причине все реализации должны учитывать метод запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...