Ответы:
Поле заголовка объекта Content-Length указывает размер тела объекта в десятичном числе OCTET, отправленного получателю, или, в случае метода HEAD, размер тела объекта, который был бы отправлен запрос был ПОЛУЧЕН.
Неважно, что тип контента.
Расширение на пост ниже .
Это количество байтов данных в теле запроса или ответа. Тело - это та часть, которая идет после пустой строки под заголовками.
Content-Length
Заголовка представляет собой число , обозначающее точную длину в байтах тела HTTP. Тело HTTP начинается сразу после первой пустой строки, которая находится после начальной строки и заголовков.
Обычно Content-Length
заголовок используется для HTTP 1.1, так что принимающая сторона знает, когда текущий ответ * закончился, поэтому соединение может быть повторно использовано для другого запроса .
* ... или запрос, в случае методов запроса, имеющих тело, таких как POST, PUT или PATCH
В качестве альтернативы, Content-Length
заголовок может быть опущен, и может использоваться разделенный на части Transfer-Encoding
заголовок .
Если оба Content-Length
и Transfer-Encoding
заголовки отсутствуют, то в конце ответа соединение должно быть закрыто.
Следующий ресурс является руководством, которое я нашел очень полезным при изучении HTTP:
Один октет составляет 8 бит. Длина содержимого - это количество октетов, которое представляет тело сообщения.
OCTET
здесь имеет очень специфическое значение, которое означает «любая 8-битная последовательность данных». См. Определение на w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
Отсюда :
Поле заголовка объекта Content-Length указывает размер тела объекта в десятичном числе OCTET, отправленного получателю, или, в случае метода HEAD, размер тела объекта, который был бы отправлен запрос был ПОЛУЧЕН.
Content-Length = "Content-Length" ":" 1*DIGIT
Примером является
Content-Length: 3495
Приложения ДОЛЖНЫ использовать это поле для указания длины передачи тела сообщения, если это не запрещено правилами в разделе 4.4 .
Любое значение Content-Length больше или равно нулю является допустимым значением. В разделе 4.4 описано, как определить длину тела сообщения, если не указана длина содержимого.
Обратите внимание, что значение этого поля значительно отличается от соответствующего определения в MIME, где оно является необязательным полем, используемым в типе содержимого "message / external-body". В HTTP его СЛЕДУЕТ отправлять всякий раз, когда длина сообщения может быть определена до его передачи, если это не запрещено правилами в разделе 4.4.
Моя интерпретация заключается в том, что это означает длину "на проводе", то есть длину * кодированного "контента
"Content-length": "3495"
На сегодняшний день наиболее распространенным способом использования 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: frog@jmarshall.com User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32
Согласно спецификации :
Поле заголовка объекта Content-Length указывает размер тела объекта в десятичном числе OCTET, отправленного получателю, или, в случае метода HEAD, размер тела объекта, который был бы отправлен запрос был ПОЛУЧЕН.
Content-Length = "Content-Length" ":" 1*DIGIT
Примером является
Content-Length: 3495
Приложения ДОЛЖНЫ использовать это поле для указания длины передачи тела сообщения, если это не запрещено правилами в разделе 4.4.
Любое значение Content-Length больше или равно нулю является допустимым значением. В разделе 4.4 описано, как определить длину тела сообщения, если не указана длина содержимого.
Обратите внимание, что значение этого поля значительно отличается от соответствующего определения в MIME, где оно является необязательным полем, используемым в типе содержимого "message / external-body". В HTTP его СЛЕДУЕТ отправлять всякий раз, когда длина сообщения может быть определена до его передачи, если это не запрещено правилами в разделе 4.4.
Поле заголовка объекта Content-Length указывает размер тела объекта в десятичном числе OCTET, отправленного получателю, или, в случае метода HEAD, размер тела объекта, который был бы отправлен запрос был ПОЛУЧЕН.
Content-Length = "Content-Length" ":" 1 * DIGIT
Примером является
Длина контента: 1024
Приложения ДОЛЖНЫ использовать это поле для указания длины передачи тела сообщения.
В PHP вы бы использовали что-то вроде этого.
header("Content-Length: ".filesize($filename));
В случае «Content-Type: application / x-www-form-urlencoded» закодированные данные отправляются назначенному обработчику, чтобы вы могли установить длину или размер данных, которые вы собираетесь публиковать.
Подумайте, есть ли у вас такие заголовки, как:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
Длина содержимого - это размер сжатого тела сообщения в «октетах» (т. Е. В 8-битных единицах, которые являются «байтами» для всех современных компьютеров).
размер фактического тела сообщения может быть что - то еще, возможно , 150280 байт.
Количество символов снова может быть другим, возможно, 150231 символ, потому что некоторые символы Юникода используют несколько байтов (обратите внимание, UTF-8 является стандартной кодировкой).
Таким образом, разные цифры зависят от того, насколько вам важно, сколько данных передается, сколько данных хранится или сколько символов видно. Конечно, нет никаких гарантий, что эти заголовки будут предоставлены ..