Список заголовков HTTP

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Список http заголовков - перечень заголовков HTTP.

Шаблон:HTTP

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

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

  1. General Headers (Шаблон:lang-ru) — используются в запросах и ответах.
  2. Request Headers (Шаблон:lang-ru) — используются только в запросах.
  3. Response Headers (Шаблон:lang-ru) — используются только в ответах.
  4. Entity Headers (Шаблон:lang-ru) — сопровождают каждую сущность сообщения. Используются в запросах и ответах.

Именно в таком порядке рекомендуется посылать заголовки получателю (программно это не имеет значения, однако даёт удобство при отладке). Сущности и, соответственно, их заголовки могут находиться как в запросах, так и в ответах (при этом в ответе некоторые заголовки могут присутствовать, а в запросе — отсутствовать или наоборот). Следует отметить, что некоторые заголовки могут относиться сразу к нескольким группам (например, Content-Disposition).

Обзорная таблица

В нижеследующей обзорной таблице каждая строка данных соответствует конкретному заголовку, а часть столбцов отведена под их группы. Таблица была составлена на основе анализа зафиксированных в RFC полей заголовка. Такая матрица была сделана для людей, которым важна совместимость версий и динамика. С выходом обновлений протокола некоторые заголовки переносились из одной группы в другую (зачёркнутым «Да» отмечено, куда они входили до этого). Некоторые заголовки были полностью исключены, и по зачёркнутым «Да» можно узнать, в какой группе они находились перед исключением. У некоторых заголовков есть несколько зачёркнутых «Да» (например, URI) — такие заголовки сначала были введены в одной группе, потом перенесены, а позднее вовсе отменены. В колонке «Заголовок» также имеется своё кодирование. Например, полностью исключённые заголовки зачёркнуты, а предлагаемые к исключению помечены курсивом.

Легенда

Краткое обозначение Трактовка
Шаблон:Да Заголовок сейчас относится к указанной в колонке группе.
Шаблон:Нет Заголовок никогда не относился к данной группе.
Шаблон:Нет Заголовок раньше относился к данной группе. Если в строке есть зелёное «Да», то его перенесли в другую группу (зачёркнутое — откуда был перенесен). Если же в строке только зачёркнутое «Да» и обычное «Нет», то заголовок вообще был убран. Если несколько зачёркнутых, то заголовок переносился, а потом был вообще убран.
Шаблон:Частично Говорит о сомнении. Если на строке только «Нет», то значит заголовок только собираются включить в протокол (при этом можно уже использовать). Если на строке есть ещё и «Да», то хотят перенести его в другую группу, но ещё окончательно не решено.

Данные

Заголовок Шаблон:abbr Запрос Ответ Появление* Назначение Пример
Шаблон:abbr Шаблон:abbr Шаблон:abbr Шаблон:abbr
Accept Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Список допустимых форматов ресурса. Accept: text/plain
Accept-Charset Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Перечень поддерживаемых кодировок для предоставления пользователю. Accept-Charset: utf-8
Accept-Encoding Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Перечень поддерживаемых способов кодирования содержимого сущности при передаче. Accept-Encoding: <compress | gzip | deflate | sdch | identity>
Accept-Language Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Список поддерживаемых естественных языков. Accept-Language: ru
Accept-Ranges Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.1 Перечень единиц измерения диапазонов. Accept-Ranges: bytes
Age Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.1 Количество секунд с момента модификации ресурса.
Allow Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да HTTP/1.0 Список поддерживаемых методов. Allow: OPTIONS, GET, HEAD
Alternates Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.1 Указание на альтернативные способы представления ресурса.
Authorization Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP-Auth Данные для авторизации. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Основные директивы для управления кэшированием. Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: max-age=3600
Cache-Control: max-stale=0
Cache-Control: min-fresh=0
Cache-Control: no-transform
Cache-Control: only-if-cached
Cache-Control: cache-extension
Connection Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Сведения о проведении соединения. Connection: close
Content-Base Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Сведения о постоянном местонахождении ресурса. Убрано в HTTP/1.1v2.
Content-Disposition Шаблон:Нет Шаблон:Да Шаблон:Да Шаблон:Да Шаблон:Да CDH Способ распределения сущностей в сообщении при передаче нескольких фрагментов. Content-Disposition: form-data; name="MessageTitle"
Content-Disposition: form-data; name="AttachedFile1"; filename="photo-1.jpg"
Content-Encoding Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.0 Способ кодирования содержимого сущности при передаче.
Content-Language Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.0 Один или несколько естественных языков содержимого сущности. Content-Language: en, ase, ru
Content-Length Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.0 Размер содержимого сущности в октетах (которые в русском языке обычно называют байтами). Content-Length: 1348
Content-Location Шаблон:Нет Шаблон:Нет Шаблон:Частично Шаблон:Нет Шаблон:Да HTTP/1.1 Альтернативное расположение содержимого сущности.
Content-MD5 Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да MD5H Base64 MD5-хэша сущности для проверки целостности. Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.1 Байтовые диапазоны передаваемой сущности если возвращается фрагмент. Подробности: Частичные GET. Content-Range: bytes 88080384-160993791/160993792
Content-Type Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.0 Формат и способ представления сущности. Content-Type: text/html;charset=utf-8
Content-Version Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.1 Информация о текущей версии сущности.
Date Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Дата генерации отклика. Date: Tue, 15 Nov 1994 08:12:31 GMT
Derived-From Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.1 Информация о текущей версии сущности. [?]
ETag Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.1 Тег (уникальный идентификатор) версии сущности, используемый при кэшировании. ETag: "56d-9989200-1132c580"
Expect Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1v2 Указывает серверу что клиент ожидает от него дополнительного действия. Expect: 100-continue
Expires Шаблон:Нет Шаблон:Нет Шаблон:Частично Шаблон:Нет Шаблон:Да HTTP/1.0 Дата предполагаемого истечения срока актуальности сущности. Expires: Tue, 31 Jan 2012 15:02:53 GMT
From Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Адрес электронной почты ответственного лица со стороны клиента. From: user@example.com
Host Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Доменное имя и порт хоста запрашиваемого ресурса. Необходимо для поддержки виртуального хостинга на серверах. Host: ru.wikipedia.org
If-Match Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Список тегов версий сущности. Выполнять метод, если они существуют. If-Match: "737060cd8c284d8af7ad3082f209582d"
If-Modified-Since Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Дата. Выполнять метод если сущность изменилась с указанного момента. If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Список тегов версий сущности. Выполнять метод если ни одного из них не существует. If-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-Range Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Список тегов версий сущности или дата для определённого фрагмента сущности. If-Range: "737060cd8c284d8af7ad3082f209582d"
If-Unmodified-Since Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Дата. Выполнять метод если сущность не изменилась с указанной даты. If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Last-Modified Шаблон:Нет Шаблон:Нет Шаблон:Частично Шаблон:Нет Шаблон:Да HTTP/1.0 Дата последней модификации сущности.
Link Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.0 Указывает на логически связанный с сущностью ресурс аналогично тегу <LINK> в HTML.
Location Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.0 URI по которому клиенту следует перейти или URI созданного ресурса. Location: http://example.com/about.html#contacts
Max-Forwards Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Максимально допустимое количество переходов через прокси. Max-Forwards: 10
MIME-Version Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет MIME Версия протокола MIME, по которому было сформировано сообщение.
Pragma Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Особенные опции выполнения операции. Pragma: no-cache
Proxy-Authenticate Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP-Auth Параметры аутентификации на прокси-сервере.
Proxy-Authorization Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP-Auth Информация для авторизации на прокси-сервере. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Public Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.1 Список доступных методов аналогично Allow, но для всего сервера.
Range Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Байтовые диапазоны для запроса фрагментов ресурса. Подробности: Частичные GET. Range: bytes=50000-99999,250000-399999,500000-
Referer Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 URI ресурса, после которого клиент сделал текущий запрос. Referer: http://en.wikipedia.org/wiki/Main_Page
Retry-After Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.0 Дата или время в секундах после которого можно повторить запрос.
Server Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.0 Список названий и версий веб-сервера и его компонентов с комментариями. Для прокси-серверов поле Via. Server: Apache/2.2.17 (Win32) PHP/5.3.5
Title Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Да HTTP/1.0 Заголовок сущности.
TE Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1v2 Список расширенных способов кодирования при передаче. TE: trailers, deflate
Trailer Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1v2 Список полей, имеющих отношение к кодированию сообщения при передаче.
Transfer-Encoding Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Список способов кодирования, которые были применены к сообщению для передачи. Transfer-Encoding: chunked
Upgrade Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Список предлагаемых клиентом протоколов. Сервер указывает один протокол. Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
URI Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Список URI. В HTTP/1.1 заменено на Location, Content-Location, Vary и Link.
User-Agent Шаблон:Нет Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.0 Список названий и версий клиента и его компонентов с комментариями. User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Vary Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP/1.1 Список описывающих ресурс полей из запроса, которые были приняты во внимание. Vary: Accept-Encoding
Via Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Список версий протокола, названий и версий прокси-серверов, через которых прошло сообщение. Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning Шаблон:Да Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Нет HTTP/1.1 Код, агент, сообщение и дата, если возникла критическая ситуация. Warning: 199 Miscellaneous warning
WWW-Authenticate Шаблон:Нет Шаблон:Нет Шаблон:Нет Шаблон:Да Шаблон:Нет HTTP-Auth Параметры аутентификации для выполнения метода к указанному ресурсу.

* Значения в колонке «Появление»:

  • HTTP/1.0 — RFC 1945 («Hypertext Transfer Protocol — HTTP/1.0»).
  • HTTP/1.1 — RFC 2068 («Hypertext Transfer Protocol — HTTP/1.1»).
  • HTTP/1.1v2 — RFC 2616 («Hypertext Transfer Protocol — HTTP/1.1»).
  • HTTP-Auth — RFC 2617 («HTTP Authentication: Basic and Digest Access Authentication»).
  • MD5H — RFC 1965 («The Content-MD5 Header Field»).
  • CDH — RFC 1806 («Communicating Presentation Information in Internet Messages: The Content-Disposition Header»).
  • MIME — RFC 2045 («Multipurpose Internet Mail Extensions Part One: Format of Internet Message Bodies»).

Основные заголовки

Основные заголовки (англ. General Headers) являются основными для запросов клиента и ответов сервера. Большая часть из них являются обязательными.

Заголовки запроса

Заголовки запроса (англ. Request Headers) используются только в запросах клиента.

Referer

Шаблон:main Полный или относительный URI ресурса, с которого клиент сделал текущий запрос. Если указан относительный, то полный определяется по запрашиваемому URI. Клиенты не должны включать в значение Referer указатель фрагмента (часть URI после символа решетки «#»). Также нельзя включать ссылки на ресурсы, не имеющие собственного URI (например, ввод адреса с клавиатуры).

Примеры:

User-Agent

Шаблон:main Указывает программное обеспечение клиента и его характеристики. Аналогичным ему является Server для серверов и Via для прокси.

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

Заголовки ответа (англ. Response Headers) включаются только в ответы сервера.

Allow

Список поддерживаемых методов всего сервера или конкретного ресурса. Посылается сервером вместе со статусами 405 и 501, а также в ответе на метод OPTIONS.

Пример: Allow: GET, HEAD, OPTIONS

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

Заголовки сущности (англ. Entity Headers) — заголовки, сопровождающие каждую сущность как в запросах клиента, так и в ответах сервера. Тем не менее, наличие некоторых бессмыслено в заголовках запросов (например, Expires). В отдельный класс заголовки сущности выделены для того, чтобы не путать их с заголовками запроса или заголовками ответа при передаче множественного содержимого (multipart/*). Заголовки запроса и ответа как и основные заголовки описывают всё сообщение в целом и размещаются только в начальном блоке заголовков, в то время как заголовки сущности характеризуют содержимое каждой части в отдельности располагаясь непосредственно перед её телом.

Content-Language

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

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

В RFC сказано, что язык содержимого можно указывать для любых медиатипов, а не только для текста. Например, если это видео, где люди говорят на английском, в котором сбоку расположено окошко с сурдопереводом на амслене, а внизу расположен перевод субтитрами на русском, то заголовок Content-Language должен иметь значение «en, ase, ru». При этом, если это видео, где герои говорят на японском, и присутствует голосовой перевод на русском, то следует указать только русский язык, так как японцам, скорее всего, будет трудно расслышать родную речь.

Заголовок Content-Language описан не только в основных спецификациях по протоколу HTTP, но и в отдельной RFC 3282 «Content Language Headers». Все названия языков регистрируются в IANA. Ссылку на их реестр вы найдёте в конце данной статьи.

List

Список http заголовков с названием (описанием) протокола, кодами статусов и комментариями:

  • HTTP/1.0 404 Not Found

См. также

Ссылки

Основные RFC по протоколу HTTP (по убыванию даты публикации):

Материалы по натуральным языкам:

Шаблон:Веб и веб-сайты