Поскольку вы обычно не отправляете никаких дополнительных данных при выполнении запроса GET
, заголовок Content-Length
вообще не должен отправляться.
Заголовок Content-Length
следует включать только тогда, когда вы отправляете тело сообщения, а значение рассматриваемого заголовка всегда равно длине этого поля, измеренной в (октетах). ) байт.
Поле заголовка объекта Content-Length указывает размер тела объекта в десятичном числе октетов, отправленного получателю, или, в случае метода HEAD, размер тела объекта, который был бы отправлен получателю. запрос был GET.
‹снип /›
Приложения ДОЛЖНЫ использовать это поле для указания длины передачи тела сообщения, если это не запрещено правилами в разделе 4.4.
(AFAIK) считается плохой практикой включать тело сообщения при выполнении запроса GET
, но при чтении HTTP RFC2616 Я ничего не вижу о том, что запрос GET
не может включать тело сообщения.
Хотя я предполагаю, что большинство веб-серверов сегодня не будут отвечать тем, что вы хотите, чтобы они ответили, если вы отправляете данные в тело сообщения и ожидаете, что в этом случае они будут проанализированы и обработаны.
Тело сообщения (если есть) сообщения HTTP используется для переноса тела объекта, связанного с запросом или ответом. Тело сообщения отличается от тела объекта только в том случае, если было применено кодирование передачи, на что указывает поле заголовка Transfer-Encoding (раздел 14.41).
message-body = entity-body
| <entity-body encoded as per Transfer-Encoding>
Transfer-Encoding ДОЛЖЕН использоваться для указания любых кодировок передачи, применяемых приложением для обеспечения безопасной и правильной передачи сообщения. Transfer-Encoding является свойством сообщения, а не сущности, и, таким образом, МОЖЕТ быть добавлено или удалено любым приложением в цепочке запрос/ответ. (Однако в разделе 3.6 налагаются ограничения на то, когда можно использовать определенные коды передачи.)
Правила, когда тело сообщения разрешено в сообщении, различаются для запросов и ответов.
Наличие тела сообщения в запросе сигнализируется включением поля заголовка Content-Length или Transfer-Encoding в заголовки сообщения запроса.
Тело сообщения НЕ ДОЛЖНО включаться в запрос, если спецификация метода запроса (раздел 5.1.1) не позволяет отправлять тело объекта в запросах.
Сервер ДОЛЖЕН читать и пересылать тело сообщения по любому запросу; если метод запроса не включает определенную семантику для тела объекта, то тело сообщения СЛЕДУЕТ игнорировать при обработке запроса.
person
Filip Roséen - refp
schedule
16.12.2011