Учебники

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

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

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

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

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

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

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

Заголовок запроса клиента. Эти поля заголовка применимы только для сообщений запроса.

Заголовок ответа сервера. Эти поля заголовка применимы только для ответных сообщений.

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

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

Cache-Control

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

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

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

Cache-control: no-cache

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

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

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

2 нет-магазин

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

3 максимальный возраст = секунды

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

4 max-stale [= секунд]

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

5 min-fresh = секунды

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

6 нет-преобразования

Не конвертирует сущность-тело.

7 только-если-кэшированные

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

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

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

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

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

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

Не конвертирует сущность-тело.

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

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

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

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

2 частный

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

3 нет кэша

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

4 нет-магазин

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

5 нет-преобразования

Не конвертирует сущность-тело.

6 обязательно перепроверить

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

7 прокси-REVALIDATE

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

8 максимальный возраст = секунды

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

9 s-maxage = секунды

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

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

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

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

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

Не конвертирует сущность-тело.

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

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

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

Максимальный возраст, указанный в этой директиве, переопределяет максимальный возраст, указанный в директиве 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 используется для включения директив, специфичных для реализации, которые могут применяться к любому получателю в цепочке запросов / ответов. Например:

Pragma: no-cache

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

трейлер

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

Trailer : field-name

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

  • Transfer-Encoding

  • Content-Length

  • трейлер

Transfer-Encoding

Content-Length

трейлер

Transfer-Encoding

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

Transfer-Encoding: chunked

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

Обновить

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

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 используется для переноса дополнительной информации о состоянии или преобразовании сообщения, которая может не отражаться в сообщении. Ответ может содержать более одного заголовка предупреждения.

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 / xc и являются предпочтительными типами мультимедиа, но если они не существуют, отправьте сущность 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-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-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, где параметром авторизации является строка имени пользователя: пароль, закодированный в базе 64. Ниже приведен пример:

Authorization: BASIC Z3Vlc3Q6Z3Vlc3QxMjM=

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

печенье

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

Cookie: name=value

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

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

ожидать

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

Expect : 100-continue | expectation-extension

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

От

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

From: webmaster@w3.org

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

хозяин

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

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

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

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

If-Match

Поле заголовка запроса 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

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

If-None-Match : entity-tag

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

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

If-Range

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

If-Range : entity-tag | HTTP-date

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

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

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

Если-Unmodified-С

Поле заголовка запроса 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-Нападающие

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

Max-Forwards : n

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

Max-Forwards : 5

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

Proxy-Authorization

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

Proxy-Authorization : credentials

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

Спектр

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

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

Значение first-byte-pos в спецификации byte-range-специфицирует смещение байта первого байта в диапазоне. Значение 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

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

Referer

Поле заголовка запроса 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 содержит информацию о пользовательском агенте, создавшем запрос. Ниже приводится общий синтаксис:

User-Agent : product | comment

Пример:

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

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

Accept-Ranges

Поле заголовка ответа 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

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

Proxy-Authenticate  : challenge

Retry-After

Поле заголовка ответа 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 Комментарий = комментарий

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

2 Домен = домен

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

3 Истекает = Дата-время

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

4 Path = путь

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

5 Безопасный

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

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

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

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

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

Он дает указание агенту пользователя возвращать 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-Authenticate

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

WWW-Authenticate : challenge

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

WWW-Authenticate: BASIC realm="Admin"

Заголовки сущностей

Разрешать

Поле « Разрешить заголовок объекта» содержит список методов, поддерживаемых ресурсом, идентифицированным Request-URI. Общий синтаксис:

Allow : Method

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

Allow: GET, HEAD, PUT

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

Content-Encoding

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

Content-Encoding : content-coding

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

Content-Encoding: gzip

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

Content-Language

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

Content-Language : language-tag

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

Content-Language: mi, en

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

Content-Length

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

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

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