Что такое поле Content-Length в заголовке HTTP?
Что это значит?
- Количество байтов кодированной строки содержимого с кодировкой, указанной в заголовке.
- Количество символов строки содержимого.
Особенно в случае «Content-Type: application / x-www-form-urlencoded».
- Существует ли ограничение длины заголовка HTTP-заголовка?
- Что такое http-заголовок «X-XSS-Protection»?
- Настройка заголовков HTTP
- Что означает HTTP / 1.1 302?
- Лучший тип заголовка HTTP-авторизации для JWT
- HTTP-заголовок «Обновить»
- Допустимы ли повторяющиеся заголовки ответов HTTP?
- Как удалить HTTP-заголовки ASP.Net MVC по умолчанию?
- Chrome не кэширует изображения / js / css
- различия в приложении / json и application / x-www-form-urlencoded
- Настройка cookie с помощью WebEngine / WebView JavaFX
- Прояснение заголовка Keep-alive
- Как установить контроль доступа-allow-origin в webrick под рельсами?
RFC2616
The Content-Length entity-header field indicates the size of the entity-body, in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD method, the size of the entity-body that would have been sent had the request been a GET.
Неважно, что такое тип контента.
Расширение в столбце ниже .
Это количество байтов данных в теле запроса или ответа. Тело – это часть, которая появляется после пустой строки под заголовками.
Заголовок Content-Length
представляет собой число, обозначающее точную длину байта тела HTTP. Тело HTTP начинается сразу после первой пустой строки, которая найдена после строки начала и заголовков.
Как правило, заголовок Content-Length
используется для HTTP 1.1, так что получающая сторона знает, когда текущий ответ * закончен, поэтому соединение можно повторно использовать для другого запроса .
* … или запрос, в случае методов запроса, которые имеют тело, например POST, PUT или PATCH
В качестве альтернативы заголовок Content-Length
может быть опущен, и может использоваться заголовок Transfer-Encoding
.
Если отсутствуют заголовки Content-Length
и Transfer-Encoding
, то в конце ответа соединение должно быть закрыто.
Один октет – 8 бит. Content-length – количество октетов, которое представляет тело сообщения.
Отсюда :
В поле Content-Length entity-header указывается размер тела объекта, десятичного числа OCTET, отправленного получателю или, в случае метода HEAD, размер тела сущности, который был отправлен, запрос был GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Примером является
Content-Length: 3495
Приложения СЛЕДУЕТ использовать это поле, чтобы указать длину передачи тела сообщения, если это не запрещено правилами в разделе 4.4 .
Значение Content-Length, большее или равное нулю, является допустимым значением. Раздел 4.4 описывает, как определить длину тела сообщения, если Content-Length не задано.
Обратите внимание, что значение этого поля существенно отличается от соответствующего определения в MIME, где оно является необязательным полем, используемым в типе контента «message / external-body». В HTTP он ДОЛЖЕН быть отправлен всякий раз, когда длина сообщения может быть определена до передачи, если это не запрещено правилами в разделе 4.4.
Моя интерпретация заключается в том, что это означает длину «на проводе», то есть длину * закодированного содержимого
С этой страницы
Наиболее распространенным использованием POST, безусловно, является передача данных формы HTML в сценарии CGI. В этом случае заголовок Content-Type: обычно является application / x-www-form-urlencoded, а заголовок Content-Length: дает длину данных формы с кодировкой URL (здесь есть примечание о кодировке URL). Скрипт CGI получает тело сообщения через STDIN и декодирует его. Вот типичная подача формы, используя POST:
POST /path/script.cgi HTTP/1.0 From: [email protected] User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32
Согласно спецификации :
В поле Content-Length entity-header указывается размер тела объекта, десятичного числа OCTET, отправленного получателю или, в случае метода HEAD, размер тела сущности, который был отправлен, запрос был GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Примером является
Content-Length: 3495
Приложения СЛЕДУЕТ использовать это поле, чтобы указать длину передачи тела сообщения, если это не запрещено правилами в разделе 4.4.
Значение Content-Length, большее или равное нулю, является допустимым значением. Раздел 4.4 описывает, как определить длину тела сообщения, если Content-Length не задано.
Обратите внимание, что значение этого поля существенно отличается от соответствующего определения в MIME, где оно является необязательным полем, используемым в типе контента «message / external-body». В HTTP он ДОЛЖЕН быть отправлен всякий раз, когда длина сообщения может быть определена до передачи, если это не запрещено правилами в разделе 4.4.
В поле Content-Length entity-header указывается размер тела объекта, десятичного числа OCTET, отправленного получателю или, в случае метода HEAD, размер тела сущности, который был отправлен, запрос был GET.
Content-Length = “Content-Length” “:” 1 * DIGIT
Примером является
Контент-длина: 1024
Приложения СЛЕДУЕТ использовать это поле, чтобы указать длину передачи тела сообщения.
В PHP вы бы использовали что-то вроде этого.
header("Content-Length: ".filesize($filename));
В случае «Content-Type: application / x-www-form-urlencoded» закодированные данные отправляются обработчику, указанному так, что вы можете установить длину или размер данных, которые собираетесь отправлять.