HTTP/1.1, протокол передачи гипертекста
7 Объект (Entity).
Сообщения запросов и ответов МОГУТ передать объект, если иное не установлено методом запроса или кодом состояния ответа. Объект состоит из полей заголовка объекта (entity-header) и тела объекта (entity-body), хотя некоторые ответы могут включать только заголовки объекта (entity-headers).
Этот раздел относится как к отправителю, так и к получателю, то есть к клиенту или серверу, в зависимости от того, кто посылает, а кто получает объект.
Поля заголовка объекта (Entity-header fields) определяют опциональную метаинформацию о теле объекта или, если тело не присутствует, относительно ресурса, идентифицированного запросом.
entity-header = Allow ; Раздел 14.7 | Content-Base ; Раздел 14.11 | Content-Encoding ; Раздел 14.12 | Content-Language ; Раздел 14.13 | Content-Length ; Раздел 14.14 | Content-Location ; Раздел 14.15 | Content-MD5 ; Раздел 14.16 | Content-Range ; Раздел 14.17 | Content-Type ; Раздел 14.18 | ETag ; Раздел 14.20 | Expires ; Раздел 14.21 | Last-Modified ; Раздел 14.29 | extension-header extension-header = message-header
Механизм расширения полей заголовка позволяет вводить дополнительные поля заголовка объекта (entity-header fields) не изменяя протокол, но эти поля не могут считаться распознаваемыми получателем. Нераспознанные поля заголовка получателю СЛЕДУЕТ игнорировать, а прокси-серверу пересылать без изменений.
Тело объекта (если оно присутствует) посылается с HTTP запросом или ответом и имеет формат и кодирование, определяемое полями заголовка объекта (entity-header fields).
entity-body = *OCTET
Тело объекта (entity-body) представлено в сообщении только тогда, когда присутствует тело сообщения (message-body), как описано в разделе 4.3. Тело объекта (entity-body) получается из тела сообщения (message-body), декодированием кодирования передачи, указанного в поле Transfer-Encoding, и которое может быть применено для гарантирования безопасной и правильной передачи сообщения.
Когда тело объекта (entity-body) включено в сообщение, тип данных этого тела определяется полями заголовка Content-Type и Content-Encoding. Они определяют двухуровневую упорядоченную модель кодирования:
entity-body := Content-Encoding( Content-Type( data ) )
Тип содержимого (Content-Type) определяет медиа тип основных данных. Кодирование содержимого (Content-Encoding) может использоваться для указания любого дополнительного кодирования содержимого, примененного к данным (обычно с целью сжатия данных). Кодирование содержимого (Content-Encoding) является свойством запрошенного ресурса. По умолчанию никакого кодирования не задано.
В любое HTTP/1.1 сообщение, содержащее тело объекта (entity-body) СЛЕДУЕТ включать поле заголовка Content-Type, определяющее медиа тип этого тела. В том и только в том случае, когда медиа тип не представлен полем Content-Type, получатель МОЖЕТ попытаться предположить медиа тип, проверяя содержимое и/или расширение (расширения) в имени URL, используемого для идентификации ресурса. Если медиа тип остался нераспознан, получателю СЛЕДУЕТ обрабатывать его как тип "application/octet-stream".
Длина тела объекта (entity-body) - это длина тела сообщения (message-body), полученного после декодирования всех кодирований передачи. Раздел 4.4 определяет как вычисляется длина тела сообщения (message-body).