Что это значит?
- Количество байтов кодированной строки содержимого с кодировкой, указанной в заголовке.
- Количество символов строки содержимого.
Особенно в случае "Content-Type: application/x-www-form-urlencoded".
Что это значит?
Особенно в случае "Content-Type: application/x-www-form-urlencoded".
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.
Не имеет значения, каков тип содержимого.
Расширение на опубликовано ниже.
Это количество байтов данных в теле запроса или ответа. Тело - это часть, которая появляется после пустой строки под заголовками.
Один октет - 8 бит. Content-length - количество октетов, которое представляет тело сообщения.
Заголовок Content-Length
- это число, обозначающее точную длину байта тела HTTP. Тело HTTP начинается сразу после первой пустой строки, которая найдена после строки начала и заголовков.
Как правило, заголовок Content-Length
используется для HTTP 1.1, так что получающая сторона знает, когда текущий ответ * завершен, поэтому можно повторно использовать для другого запроса.
*... или запрос, в случае методов запроса, которые имеют тело, например POST, PUT или PATCH
В качестве альтернативы заголовок Content-Length
может быть опущен, и можно использовать заголовок Transfer-Encoding
.
Если отсутствуют заголовки Content-Length
и Transfer-Encoding
, то в конце ответа соединение должно быть закрыто.
Поле заголовка объекта Content-Length указывает размер тела объекта, в десятичном числе OCTET, отправленных в получателя или, в случае HEAD, размер сущность-орган, который был бы отправлен если бы запрос был GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Примером является
Content-Length: 3495
Приложения СЛЕДУЕТ использовать это поле для указать длину передачи тело сообщения, если это не запрещено правилами в разделе 4.4.
Любая длина содержимого больше или равное нулю, является допустимым значением. Раздел 4.4 описывает, как определить длина тела сообщения, если Content-Length не указывается.
Обратите внимание, что значение этого поля равно существенно отличается от соответствующее определение в MIME, где используется дополнительное поле внутри "сообщения/внешнего тела", Тип содержимого. В HTTP это ДОЛЖНО отправляется всякий раз, когда длина сообщения может быть определенными до переданы, если это не запрещено по правилам в разделе 4.4.
Моя интерпретация заключается в том, что это означает длину "на проводе", то есть длину * закодированного содержимого
От эта страница
Наиболее распространенное использование POST, безусловно, заключается в отправке данных формы HTML в CGI скрипты. В этом случае Content-Type: заголовок обычно применение/х-WWW-форм-urlencoded, и заголовок Content-Length: длина URL-кодированной формы данных (здесь примечание о кодировании URL). CGI script получает сообщение тело через 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
В соответствии с spec:
Поле Content-Length entity-header указывает размер тела сущности, десятичного числа OCTET, отправленного получателю или, в случае метода HEAD, размер тела объекта, который будет иметь был отправлен, если запрос был GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Примером является
Content-Length: 3495
Приложения СЛЕДУЕТ использовать это поле, чтобы указать длину передачи тела сообщения, если это не запрещено правилами в разделе 4.4.
Любое содержание-длина, большее или равное нулю, является допустимым значением. Раздел 4.4 описывает, как определить длину тела сообщения, если Content-Length не задано.
Обратите внимание, что значение этого поля существенно отличается от соответствующего определения в MIME, где оно является необязательным полем, используемым в типе контента "message/external-body". В HTTP он ДОЛЖЕН быть отправлен всякий раз, когда длина сообщения может быть определена до передачи, если это не запрещено правилами в разделе 4.4.
Поле Content-Length entity-header указывает размер тела сущности, десятичного числа OCTET, отправленного получателю или, в случае метода HEAD, размер тела объекта, который будет иметь был отправлен, если запрос был GET.
Content-Length = "Content-Length" ":" 1 * DIGIT
Примером является
Content-Length: 1024
Приложения СЛЕДУЕТ использовать это поле, чтобы указать длину передачи тела сообщения.
В PHP вы бы использовали что-то вроде этого.
header("Content-Length: ".filesize($filename));
В случае "Content-Type: application/x-www-form-urlencoded" закодированные данные отправляются агенту обработки, указанному так, что вы можете установить длину или размер данных, которые собираетесь отправлять.