какому методу требуется поле длины содержимого?

Для метода POST или PUT требуется длина содержимого в поле заголовка запроса.

Нужна ли длина содержимого для другого метода (GET, PATCH, DELETE, OPTIONS, CONNECT, TRACE, HEADER)?

О длине содержимого в Response спецификация описана в rfc2616.

Поле заголовка объекта Content-Length указывает размер тела объекта в десятичном числе октетов, отправленного получателю, или, в случае метода HEAD, размер тела объекта, который был бы отправлен получателю. запрос был GET.

Хотя я не смог найти спецификацию заголовка запроса.


person tamagohan2    schedule 08.10.2015    source источник


Ответы (1)


Спецификация HTTP была обновлена ​​с RFC2616. Вместо этого обратитесь к следующему:

  • RFC7230 — HTTP/1.1: синтаксис и маршрутизация сообщений
  • RFC7231 — HTTP/1.1: семантика и контент
  • RFC7232 — HTTP/1.1: условные запросы
  • RFC7233 — HTTP/1.1: запросы диапазона
  • RFC7234 — HTTP/1.1: кэширование
  • RFC7235 — HTTP/1.1: аутентификация

В частности, раздел 3.3.2 RFC7230

Content-Length СЛЕДУЕТ отправлять, ЕСЛИ запрос включает тело полезной нагрузки, а заголовок Transfer-Encoding не установлен.

Таким образом, даже POST или PUT нужно отправлять Content-Length только тогда, когда есть тело, имеющее длину, это обычно происходит с POST и PUT из-за операций.

Нет проблем с отправкой Content-Length, равной 0, чтобы указать отсутствие тела, но это подразумевается отсутствием Content-Length или Transfer-Encoding.

Это всего лишь спецификации, поэтому ваш пробег может варьироваться в зависимости от разных реализаций http.

person Matt    schedule 08.10.2015
comment
Спасибо! Я понимаю, что для какого метода нужно поле длины содержимого. - person tamagohan2; 08.10.2015