HTTP - поля заголовка

Поля HTTP-заголовка предоставляют необходимую информацию о запросе или ответе или об объекте, отправленном в теле сообщения. Есть четыре типа заголовков HTTP-сообщений:

  • General-header: Эти поля заголовка применимы как для сообщений запроса, так и для сообщений ответа.

  • Client Request-header: Эти поля заголовка применимы только для сообщений запроса.

  • Server Response-header: Эти поля заголовка применимы только для ответных сообщений.

  • Entity-header: Эти поля заголовка определяют метаинформацию о теле объекта или, если тело отсутствует, о ресурсе, идентифицированном запросом.

Общие заголовки

Кэш-контроль

Поле общего заголовка Cache-Control используется для указания директив, которые ДОЛЖНЫ выполняться всей системой кэширования. Синтаксис следующий:

Cache-Control : cache-request-directive|cache-response-directive

HTTP-клиент или сервер может использовать Cache-controlобщий заголовок, чтобы указать параметры кеша или запросить определенные виды документов из кеша. Директивы кэширования указываются в списке, разделенном запятыми. Например:

Cache-control: no-cache

В следующей таблице перечислены важные директивы запроса кеша, которые может использовать клиент в своем HTTP-запросе:

SN Директива и описание запроса кэша
1 no-cache

Кэш не должен использовать ответ для удовлетворения последующего запроса без успешной повторной проверки на исходном сервере.

2 no-store

В кеше не должно храниться ничего о запросе клиента или ответе сервера.

3 max-age = seconds

Указывает, что клиент готов принять ответ, возраст которого не превышает заданное время в секундах.

4 max-stale [ = seconds ]

Указывает, что клиент готов принять ответ, срок действия которого истек. Если указаны секунды, срок его действия не должен истекать более чем на это время.

5 min-fresh = seconds

Указывает, что клиент готов принять ответ, время жизни которого не меньше его текущего возраста плюс указанное время в секундах.

6 no-transform

Не преобразует тело объекта.

7 only-if-cached

Не извлекает новые данные. Кэш может отправить документ, только если он находится в кеше, и не должен связываться с исходным сервером, чтобы узнать, существует ли более новая копия.

Следующие важные директивы ответа кеша, которые может использовать сервер в своем HTTP-ответе:

SN Директива и описание ответа кэша
1 public

Указывает, что ответ может кэшироваться любым кешем.

2 private

Указывает, что ответное сообщение полностью или частично предназначено для одного пользователя и не должно кэшироваться в общем кэше.

3 no-cache

Кэш не должен использовать ответ для удовлетворения последующего запроса без успешной повторной проверки на исходном сервере.

4 no-store

В кеше не должно храниться ничего о запросе клиента или ответе сервера.

5 no-transform

Не преобразует тело объекта.

6 must-revalidate

Кэш должен проверять статус устаревших документов перед его использованием, и просроченные документы не должны использоваться.

7 proxy-revalidate

Директива proxy-revalidate имеет то же значение, что и директива must-revalidate, за исключением того, что она не применяется к необщим кэшам пользовательских агентов.

8 max-age = seconds

Указывает, что клиент готов принять ответ, возраст которого не превышает заданное время в секундах.

9 s-maxage = seconds

Максимальный возраст, указанный в этой директиве, переопределяет максимальный возраст, указанный либо в директиве max-age, либо в заголовке Expires. Директива s-maxage всегда игнорируется частным кешем.

Подключение

Поле общего заголовка соединения позволяет отправителю указывать параметры, которые требуются для этого конкретного соединения и не должны передаваться прокси-серверами через другие соединения. Ниже приводится простой синтаксис использования заголовка соединения:

Connection : "Connection"

HTTP / 1.1 определяет параметр «закрыть» соединение для отправителя, чтобы сигнализировать о том, что соединение будет закрыто после завершения ответа. Например:

Connection: close

По умолчанию HTTP 1.1 использует постоянные соединения, при этом соединение не закрывается автоматически после транзакции. HTTP 1.0, с другой стороны, по умолчанию не имеет постоянных подключений. Если клиент 1.0 желает использовать постоянные соединения, он используетkeep-alive параметр следующим образом:

Connection: keep-alive

Свидание

Все метки даты и времени HTTP ДОЛЖНЫ быть представлены в среднем времени по Гринвичу (GMT) без исключения. Приложениям HTTP разрешено использовать любое из следующих трех представлений меток даты / времени:

Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

Здесь первый формат является наиболее предпочтительным.

Прагма

Поле общего заголовка Pragma используется для включения директив, специфичных для реализации, которые могут применяться к любому получателю в цепочке запросов / ответов. Например:

Pragma: no-cache

Единственная директива, определенная в HTTP / 1.0, - это директива no-cache, которая поддерживается в HTTP 1.1 для обратной совместимости. В будущем не будут определены новые директивы Pragma.

Трейлер

Значение общего поля трейлера указывает, что данный набор полей заголовка присутствует в трейлере сообщения, закодированного с использованием кодирования передачи по частям. Ниже приводится синтаксис поля заголовка трейлера:

Trailer : field-name

Поля заголовка сообщения, перечисленные в поле заголовка трейлера, не должны включать следующие поля заголовка:

  • Transfer-Encoding

  • Content-Length

  • Trailer

Передача-кодирование

Поле общего заголовка Transfer-Encoding указывает, какой тип преобразования был применен к телу сообщения, чтобы безопасно передать его между отправителем и получателем. Это не то же самое, что и кодирование содержимого, потому что кодирование передачи является свойством сообщения, а не тела объекта. Синтаксис поля заголовка Transfer-Encoding следующий:

Transfer-Encoding: chunked

Все значения кодирования передачи нечувствительны к регистру.

Обновить

Обновление общего заголовок позволяет клиенту указать , какие протоколы дополнительных связей он поддерживает и хотел бы использовать , если сервер считает необходимыми протоколы коммутации. Например:

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

Поле заголовка Upgrade предназначено для обеспечения простого механизма перехода от HTTP / 1.1 к другому, несовместимому протоколу.

Через

Via общего заголовка должен использоваться шлюзами и прокси , чтобы указать промежуточные протоколы и получателей. Например, сообщение запроса может быть отправлено от пользовательского агента HTTP / 1.0 на внутренний прокси-сервер с кодовым именем «fred», который использует HTTP / 1.1 для пересылки запроса на общедоступный прокси-сервер на nowhere.com, который завершает запрос пересылка на исходный сервер на www.ics.uci.edu. Запрос, полученный www.ics.uci.edu, будет иметь следующее поле заголовка Via:

Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

Поле заголовка Upgrade предназначено для обеспечения простого механизма перехода от HTTP / 1.1 к другому, несовместимому протоколу.

Предупреждение

Предупреждение общего заголовка используется для передачи дополнительной информации о состоянии или преобразовании сообщения , которые не могут быть отражены в сообщении. Ответ может содержать более одного заголовка «Предупреждение».

Warning : warn-code SP warn-agent SP warn-text SP warn-date

Заголовки клиентских запросов

Принять

Поле заголовка запроса Accept может использоваться для указания определенных типов носителей, которые приемлемы для ответа. Общий синтаксис следующий:

Accept: type/subtype [q=qvalue]

Несколько типов носителей могут быть перечислены через запятую, а необязательное значение qvalue представляет приемлемый уровень качества для принимаемых типов по шкале от 0 до 1. Ниже приводится пример:

Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c

Это будет интерпретироваться как text/html и text/x-c и являются предпочтительными типами носителей, но если они не существуют, отправьте text/x-dvi объект, и если он не существует, отправьте text/plain юридическое лицо.

Accept-Charset

Поле заголовка запроса Accept-Charset может использоваться, чтобы указать, какие наборы символов приемлемы для ответа. Ниже приводится общий синтаксис:

Accept-Charset: character_set [q=qvalue]

Несколько наборов символов могут быть перечислены через запятую, а необязательное qvalue представляет приемлемый уровень качества для нежелательных наборов символов по шкале от 0 до 1. Ниже приведен пример:

Accept-Charset: iso-8859-5, unicode-1-1; q=0.8

Специальное значение «*», если оно присутствует в Accept-Charset поле, соответствует каждому набору символов, и если нет Accept-Charset заголовок присутствует, по умолчанию допустим любой набор символов.

Принять-кодирование

Поле заголовка запроса Accept-Encoding аналогично Accept, но ограничивает допустимые в ответе кодировки содержимого. Общий синтаксис:

Accept-Encoding: encoding types

Вот примеры:

Accept-Encoding: compress, gzip
Accept-Encoding:
Accept-Encoding: *
Accept-Encoding: compress;q=0.5, gzip;q=1.0
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0

Принять-язык

Поле заголовка запроса Accept-Language аналогично Accept, но ограничивает набор естественных языков, которые предпочтительны в качестве ответа на запрос. Общий синтаксис:

Accept-Language: language [q=qvalue]

Несколько языков могут быть перечислены через запятую, а необязательное значение qvalue представляет приемлемый уровень качества для не предпочтительных языков по шкале от 0 до 1. Ниже приводится пример:

Accept-Language: da, en-gb;q=0.8, en;q=0.7

Авторизация

Значение поля заголовка запроса авторизации состоит из учетных данных, содержащих информацию аутентификации пользовательского агента для области запрашиваемого ресурса. Общий синтаксис:

Authorization : credentials

Спецификация HTTP / 1.0 определяет схему авторизации BASIC, где параметром авторизации является строка username:password закодировано в базе 64. Ниже приводится пример:

Authorization: BASIC Z3Vlc3Q6Z3Vlc3QxMjM=

Значение декодируется в guest:guest123 где guest это идентификатор пользователя и guest123 это пароль.

Cookie-файлы

Cookie значение поля заголовка запроса содержит имя / значение пары информации , хранимой для этого URL. Ниже приводится общий синтаксис:

Cookie: name=value

Несколько файлов cookie можно указать через точку с запятой следующим образом:

Cookie: name1=value1;name2=value2;name3=value3

Ожидать

Поле заголовка запроса Expect используется для указания того, что клиенту требуется определенный набор поведений сервера. Общий синтаксис:

Expect : 100-continue | expectation-extension

Если сервер получает запрос, содержащий поле ожидания, которое включает расширение ожидания, которое он не поддерживает, он должен ответить статусом 417 (ожидание не выполнено).

Из

Поле заголовка запроса From содержит адрес электронной почты в Интернете для человека-пользователя, который управляет запрашивающим агентом пользователя. Вот простой пример:

From: [email protected]

Это поле заголовка может использоваться для целей ведения журнала и как средство для определения источника недопустимых или нежелательных запросов.

Хост

Поле заголовка запроса Host используется для указания хоста в Интернете и номера порта запрашиваемого ресурса. Общий синтаксис:

Host : "Host" ":" host [ ":" port ] ;

А hostбез какой-либо конечной информации о порте подразумевается порт по умолчанию, который равен 80. Например, запрос на исходном сервере для http://www.w3.org/pub/WWW/ будет следующим:

GET /pub/WWW/ HTTP/1.1
Host: www.w3.org

Если совпадение

Поле заголовка запроса If-Match используется с методом, чтобы сделать его условным. Этот заголовок запрашивает у сервера выполнение запрошенного метода, только если заданное значение в этом теге совпадает с заданными тегами объекта, представленнымиETag. Общий синтаксис:

If-Match : entity-tag

Звездочка (*) соответствует любому объекту, и транзакция продолжается, только если объект существует. Ниже приведены возможные примеры:

If-Match: "xyzzy"
If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-Match: *

Если ни один из тегов объекта не совпадает или если указан «*» и текущий объект не существует, сервер не должен выполнять запрошенный метод и должен вернуть ответ 412 (Precondition Failed).

If-Modified-Since

Поле заголовка запроса If-Modified-Since используется с методом, чтобы сделать его условным. Если запрошенный URL не был изменен с момента, указанного в этом поле, объект не будет возвращен с сервера; вместо этого будет возвращен ответ 304 (без изменений) без тела сообщения. Общий синтаксис if-modified-Since:

If-Modified-Since : HTTP-date

Пример поля:

If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT

Если ни один из тегов объекта не совпадает или если указан «*» и текущий объект не существует, сервер не должен выполнять запрошенный метод и должен вернуть ответ 412 (Precondition Failed).

Если-нет-совпадение

Поле заголовка запроса If-None-Match используется с методом, чтобы сделать его условным. Этот заголовок запрашивает у сервера выполнение запрошенного метода, только если одно из заданных значений в этом теге совпадает с заданными тегами объекта, представленнымиETag. Общий синтаксис:

If-None-Match : entity-tag

Звездочка (*) соответствует любому объекту, и транзакция продолжается, только если объект не существует. Ниже приведены возможные примеры:

If-None-Match: "xyzzy"
If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-None-Match: *

Если-диапазон

Поле заголовка запроса If-Range можно использовать с условным GET для запроса только той части сущности, которая отсутствует, если она не была изменена, и всей сущности, если она была изменена. Общий синтаксис следующий:

If-Range : entity-tag | HTTP-date

Для идентификации уже полученной частичной сущности можно использовать тег объекта или дату. Например:

If-Range: Sat, 29 Oct 1994 19:43:31 GMT

Здесь, если документ не был изменен с указанной даты, сервер возвращает диапазон байтов, указанный в заголовке Range, в противном случае он возвращает весь новый документ.

Если-без изменений-с

Поле заголовка запроса If-Unmodified-Since используется с методом, чтобы сделать его условным. Общий синтаксис:

If-Unmodified-Since : HTTP-date

Если запрошенный ресурс не был изменен с момента времени, указанного в этом поле, сервер должен выполнить запрошенную операцию, как если бы заголовок If-Unmodified-Since отсутствовал. Например:

If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT

Если запрос приводит к чему-либо, кроме статуса 2xx или 412, заголовок If-Unmodified-Since следует игнорировать.

Макс-нападающие

Поле заголовка запроса Max-Forwards предоставляет механизм с методами TRACE и OPTIONS для ограничения количества прокси или шлюзов, которые могут пересылать запрос на следующий входящий сервер. Вот общий синтаксис:

Max-Forwards : n

Значение Max-Forwards - это десятичное целое число, указывающее оставшееся количество раз, когда это сообщение запроса может быть переадресовано. Это полезно для отладки с помощью метода TRACE, избегая бесконечных циклов. Например:

Max-Forwards : 5

Поле заголовка Max-Forwards можно игнорировать для всех других методов, определенных в спецификации HTTP.

Прокси-авторизация

Поле заголовка запроса Proxy-Authorization позволяет клиенту идентифицировать себя (или своего пользователя) для прокси, который требует аутентификации. Вот общий синтаксис:

Proxy-Authorization : credentials

Значение поля Proxy-Authorization состоит из учетных данных, содержащих информацию аутентификации пользовательского агента для прокси и / или области запрашиваемого ресурса.

Спектр

Поле заголовка запроса Range указывает частичный диапазон (ы) содержимого, запрошенного из документа. Общий синтаксис:

Range: bytes-unit=first-byte-pos "-" [last-byte-pos]

Значение first-byte-pos в спецификации byte-range-spec дает байтовое смещение первого байта в диапазоне. Значение last-byte-pos дает байтовое смещение последнего байта в диапазоне; то есть указанные байтовые позиции являются включительными. Вы можете указать байтовую единицу как байты. Смещения байтов начинаются с нуля. Вот несколько простых примеров:

- The first 500 bytes 
Range: bytes=0-499

- The second 500 bytes
Range: bytes=500-999

- The final 500 bytes
Range: bytes=-500

- The first and last bytes only
Range: bytes=0-0,-1

Можно указать несколько диапазонов, разделенных запятыми. Если первая цифра в диапазоне (ах) байтов, разделенных запятыми, отсутствует, предполагается, что диапазон отсчитывается от конца документа. Если вторая цифра отсутствует, диапазон равен байтам до конца документа.

Референт

Поле заголовка запроса Referer позволяет клиенту указать адрес (URI) ресурса, из которого был запрошен URL. Общий синтаксис следующий:

Referer : absoluteURI | relativeURI

Вот простой пример:

Referer: http://www.tutorialspoint.org/http/index.htm

Если значение поля является относительным URI, его следует интерпретировать относительно Request-URI .

TE

Поле заголовка запроса TE указывает, какое расширение кодирования передачи он готов принять в ответ, и готов ли он принимать поля концевого звена при кодировании передачи по частям . Ниже приводится общий синтаксис:

TE   : t-codings

Наличие ключевого слова "трейлеры" указывает на то, что клиент готов принять поля трейлеров в фрагментированном кодировании передачи, и это указывается одним из способов:

TE: deflate
TE:
TE: trailers, deflate;q=0.5

Если значение поля TE пустое или поле TE отсутствует, то фрагментируется только кодирование передачи . Сообщение без кодирования передачи всегда приемлемо.

Пользователь-агент

Поле заголовка запроса User-Agent содержит информацию о пользовательском агенте, создавшем запрос. Ниже приводится общий синтаксис:

User-Agent : product | comment

Пример:

User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

Заголовки ответа сервера

Принять-диапазоны

Поле заголовка ответа Accept-Ranges позволяет серверу указать, что он принимает запросы диапазона для ресурса. Общий синтаксис:

Accept-Ranges  : range-unit | none

Например, сервер, который принимает запросы байтового диапазона, может отправлять:

Accept-Ranges: bytes

Серверы, которые не принимают какие-либо запросы диапазона для ресурса, могут отправлять:

Accept-Ranges: none

Это посоветует клиенту не пытаться выполнить запрос диапазона.

Возраст

Поле заголовка ответа Age передает оценку отправителя количества времени, прошедшего с момента создания ответа (или его повторной проверки) на исходном сервере. Общий синтаксис:

Age : delta-seconds

Значения возраста являются неотрицательными десятичными целыми числами, представляющими время в секундах. Вот простой пример:

Age: 1030

Сервер HTTP / 1.1, который включает кеш, должен включать поле заголовка Age в каждый ответ, сгенерированный из его собственного кеша.

ETag

Поле заголовка ответа ETag содержит текущее значение тега объекта для запрошенного варианта. Общий синтаксис:

ETag :  entity-tag

Вот несколько простых примеров:

ETag: "xyzzy"
ETag: W/"xyzzy"
ETag: ""

Расположение

Поле заголовка ответа Location используется для перенаправления получателя в местоположение, отличное от Request-URI, для завершения. Общий синтаксис:

Location : absoluteURI

Вот простой пример:

Location: http://www.tutorialspoint.org/http/index.htm

Поле заголовка Content-Location отличается от Location тем, что Content-Location идентифицирует исходное местоположение объекта, заключенного в запрос.

Прокси-аутентификация

Поле заголовка ответа Proxy-Authenticate должно быть включено как часть ответа 407 (Proxy Authentication Required). Общий синтаксис:

Proxy-Authenticate  : challenge

Повторить после

Поле заголовка ответа Retry-After может использоваться с ответом 503 (служба недоступна), чтобы указать, как долго служба, как ожидается, будет недоступна для запрашивающего клиента. Общий синтаксис:

Retry-After : HTTP-date | delta-seconds

Примеры:

Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Retry-After: 120

В последнем примере задержка составляет 2 минуты.

Сервер

Поле заголовка ответа сервера содержит информацию о программном обеспечении, используемом исходным сервером для обработки запроса. Общий синтаксис:

Server : product | comment

Вот простой пример:

Server: Apache/2.2.14 (Win32)

Если ответ пересылается через прокси, прокси-приложение не должно изменять заголовок ответа сервера.

Set-Cookie

Поле заголовка ответа Set-Cookie содержит пару имя / значение информации, которую необходимо сохранить для этого URL. Общий синтаксис:

Set-Cookie: NAME=VALUE; OPTIONS

Заголовок ответа Set-Cookie состоит из токена Set-Cookie, за которым следует список из одного или нескольких файлов cookie, разделенных запятыми. Вот возможные значения, которые вы можете указать в качестве опций:

SN Опции и описание
1 Comment=comment

Этот параметр можно использовать для указания любого комментария, связанного с файлом cookie.

2 Domain=domain

Атрибут Domain указывает домен, для которого действует cookie.

3 Expires=Date-time

Дата истечения срока действия cookie. Если он не заполнен, срок действия cookie истечет, когда посетитель закроет браузер.

4 Path=path

Атрибут Path указывает подмножество URL-адресов, к которым применяется этот файл cookie.

5 Secure

Он указывает пользовательскому агенту возвращать cookie только при защищенном соединении.

Ниже приведен пример простого заголовка файла cookie, созданного сервером:

Set-Cookie: name1=value1,name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT

Варьировать

Поле заголовка ответа Vary указывает, что объект имеет несколько источников и, следовательно, может варьироваться в зависимости от указанного списка заголовков запроса. Ниже приводится общий синтаксис:

Vary : field-name

Вы можете указать несколько заголовков, разделенных запятыми, и значение звездочки «*» сигнализируют о том, что неопределенные параметры не ограничиваются заголовками запроса. Вот простой пример:

Vary: Accept-Language, Accept-Encoding

Здесь имена полей не чувствительны к регистру.

WWW-аутентификация

Поле заголовка ответа WWW-Authenticate должно быть включено в ответное сообщение 401 (Unauthorized). Значение поля состоит как минимум из одного запроса, который указывает схему (ы) аутентификации и параметры, применимые к Request-URI. Общий синтаксис:

WWW-Authenticate : challenge

Значение поля WWW-Authenticate может содержать более одного запроса, или, если предоставлено более одного поля заголовка WWW-Authenticate, содержимое самого запроса может содержать список параметров аутентификации, разделенных запятыми. Вот простой пример:

WWW-Authenticate: BASIC realm="Admin"

Заголовки объектов

Позволять

В поле Allow entity-header отображается набор методов, поддерживаемых ресурсом, указанным в Request-URI. Общий синтаксис:

Allow : Method

Вы можете указать несколько методов через запятую. Вот простой пример:

Allow: GET, HEAD, PUT

Это поле не может помешать клиенту попробовать другие методы.

Content-Encoding

Поле заголовка объекта Content-Encoding используется в качестве модификатора медиа-типа. Общий синтаксис:

Content-Encoding : content-coding

Кодирование содержимого - это характеристика объекта, идентифицированного Request-URI. Вот простой пример:

Content-Encoding: gzip

Если кодирование содержимого объекта в сообщении запроса неприемлемо для исходного сервера, сервер должен ответить кодом состояния 415 (неподдерживаемый тип мультимедиа).

Content-Language

Поле заголовка объекта Content-Language описывает естественный язык (языки) целевой аудитории для закрытого объекта. Ниже приводится общий синтаксис:

Content-Language : language-tag

Для контента, предназначенного для разных аудиторий, может быть указано несколько языков. Вот простой пример:

Content-Language: mi, en

Основная цель Content-Language - позволить пользователю идентифицировать и различать объекты в соответствии с его собственным предпочтительным языком.

Content-Length

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

Content-Length : DIGITS

Вот простой пример:

Content-Length: 3495

Любое значение Content-Length больше или равное нулю является допустимым значением.

Content-Location

Поле заголовка объекта Content-Location может использоваться для предоставления местоположения ресурса для объекта, заключенного в сообщение, когда этот объект доступен из местоположения, отдельного от URI запрошенного ресурса. Общий синтаксис:

Content-Location:  absoluteURI | relativeURI

Вот простой пример:

Content-Location: http://www.tutorialspoint.org/http/index.htm

Значение Content-Location также определяет базовый URI для объекта.

Content-MD5

Поле заголовка объекта Content-MD5 может использоваться для предоставления дайджеста объекта MD5 для проверки целостности сообщения при его получении. Общий синтаксис:

Content-MD5  : md5-digest using base64 of 128 bit MD5 digest as per RFC 1864

Вот простой пример:

Content-MD5  : 8c2d46911f3f5a326455f0ed7a8ed3b3

Дайджест MD5 вычисляется на основе содержимого тела объекта, включая любое примененное кодирование содержимого, но не включая кодирование передачи, примененное к телу сообщения.

Content-Range

Поле заголовка объекта Content-Range отправляется с частичным телом объекта, чтобы указать, где в полном теле объекта следует применить частичное тело. Общий синтаксис:

Content-Range : bytes-unit SP first-byte-pos "-" last-byte-pos

Примеры значений byte-content-range-spec, предполагая, что объект содержит всего 1234 байта:

- The first 500 bytes:
Content-Range : bytes 0-499/1234

- The second 500 bytes:
Content-Range : bytes 500-999/1234

- All except for the first 500 bytes:
Content-Range : bytes 500-1233/1234

- The last 500 bytes:
Content-Range : bytes 734-1233/1234

Когда сообщение HTTP включает в себя содержимое одного диапазона, это содержимое передается с заголовком Content-Range и заголовком Content-Length, показывающим количество фактически переданных байтов. Например,

HTTP/1.1 206 Partial content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-Range: bytes 21010-47021/47022
Content-Length: 26012
Content-Type: image/gif

Тип содержимого

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

Content-Type : media-type

Ниже приведен пример:

Content-Type: text/html; charset=ISO-8859-4

Истекает

В поле заголовка объекта Expires указывается дата / время, после которых ответ считается устаревшим. Общий синтаксис:

Expires : HTTP-date

Ниже приведен пример:

Expires: Thu, 01 Dec 1994 16:00:00 GMT

Последнее изменение

Поле заголовка объекта Last-Modified указывает дату и время, когда исходный сервер считает, что вариант был последний раз изменен. Общий синтаксис:

Last-Modified: HTTP-date

Ниже приведен пример:

Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT