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

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
HTTP
Persistence · Сжатие · SSL
Заголовки (список)
Cookie · ETag · Referer · User-Agent
Коды состояния
В данной статье описываются конкретные заголовки протокола HTTP.
Общие сведения по заголовкам смотрите в статье Заголовки HTTP.

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

  1. General Headers (русск. Основные заголовки) — должны включаться в любое сообщение клиента и сервера.
  2. Request Headers (русск. Заголовки запроса) — используются только в запросах клиента.
  3. Response Headers (русск. Заголовки ответа) — только для ответов от сервера.
  4. Entity Headers (русск. Заголовки сущности) — сопровождают каждую сущность сообщения.

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

Заголовок GH Запрос Ответ Появление* Назначение
RH EH RH EH
Accept Нет Да Нет Нет Нет HTTP/1.0 Список допустимых форматов ресурса.
Accept-Charset Нет Да Нет Нет Нет HTTP/1.0 Перечень поддерживаемых кодировок для предоставления пользователю.
Accept-Encoding Нет Да Нет Нет Нет HTTP/1.0 Перечень поддерживаемых способов кодирования содержимого сущности при передаче.
Accept-Language Нет Да Нет Нет Нет HTTP/1.0 Список поддерживаемых естественных языков.
Accept-Ranges Нет Нет Нет Да Нет HTTP/1.1 Перечень единиц измерения диапазонов.
Age Нет Нет Нет Да Нет HTTP/1.1 Количество секунд с момента модификации ресурса.
Allow Нет Нет Нет Нет Да HTTP/1.0 Список поддерживаемых методов.
Alternates Нет Нет Нет Да Нет HTTP/1.1 Указание на альтернативные способы представления ресурса.
Authorization Нет Да Нет Нет Нет HTTP-Auth Данные для авторизации.
Cache-Control Да Нет Нет Нет Нет HTTP/1.1 Основные директивы для управления кэшированием.
Connection Да Нет Нет Нет Нет HTTP/1.1 Сведения о проведении соединения.
Content-Base Нет Нет Нет Нет Да HTTP/1.1 Сведения о постоянном местонахождении ресурса. Убрано в HTTP/1.1v2.
Content-Disposition Нет Да Да Да Да CDH Способ распределения сущностей в сообщении при передачи нескольких фрагментов.
Content-Encoding Нет Нет Да Нет Да HTTP/1.0 Способ кодирования содержимого сущности при передаче.
Content-Language Нет Нет Да Нет Да HTTP/1.0 Один или несколько естественных языков содержимого сущности.
Content-Length Нет Нет Да Нет Да HTTP/1.0 Размер содержимого сущности в байтах.
Content-Location Нет Нет Да Нет Да HTTP/1.1 Альтернативное расположение содержимого сущности.
Content-MD5 Нет Нет Да Нет Да MD5H MD5-хэш сущности для проверки целостности.
Content-Range Нет Нет Да Нет Да HTTP/1.1 Байтовые диапазоны передаваемой сущности если возвращается фрагмент. Подробности: Частичные GET.
Content-Type Нет Нет Да Нет Да HTTP/1.0 Формат и способ представления сущности.
Content-Version Нет Нет Да Нет Да HTTP/1.1 Информация о текущей версии сущности.
Date Да Нет Нет Нет Нет HTTP/1.0 Дата генерации отклика.
Derived-From Нет Нет Да Нет Да HTTP/1.1 Информация о текущей версии сущности.
ETag Нет Нет Нет Да Да HTTP/1.1 Тег (уникальный идентификатор) версии сущности, используемый при кэшировании.
Expect Нет Да Нет Нет Нет HTTP/1.1v2 Указывает серверу что клиент ожидает от него дополнительного действия.
Expires Нет Нет Да Нет Да HTTP/1.0 Дата предполагаемого истечения срока актуальности сущности.
From Нет Да Нет Нет Нет HTTP/1.1 Адрес электронной почты ответственного лица со стороны клиента.
Host Нет Да Нет Нет Нет HTTP/1.1 Доменное имя и порт хоста запрашиваемого ресурса. Необходимо для поддержки виртуального хостинга на серверах.
If-Match Нет Да Нет Нет Нет HTTP/1.1 Список тегов версий сущности. Выполнять метод если они существуют.
If-Modified-Since Нет Да Нет Нет Нет HTTP/1.0 Дата. Выполнять метод если сущность изменилась с указанного момента.
If-None-Match Нет Да Нет Нет Нет HTTP/1.1 Список тегов версий сущности. Выполнять метод если ни одного из них не существует.
If-Range Нет Да Нет Нет Нет HTTP/1.1 Список тегов версий сущности или дата для определённого фрагмента сущности.
If-Unmodified-Since Нет Да Нет Нет Нет HTTP/1.1 Дата. Выполнять метод если сущность не изменилась с указанной даты.
Last-Modified Нет Нет Да Нет Да HTTP/1.0 Дата последней модификации сущности.
Link Нет Нет Да Нет Да HTTP/1.0 Указывает на логически связный с сущностью ресурс аналогично тегу <LINK> в HTML.
Location Нет Нет Нет Да Нет HTTP/1.0 URI по которому клиенту следует перейти или URI созданного ресурса.
Max-Forwards Нет Да Нет Нет Нет HTTP/1.1 Максимально допустимое количество переходов через прокси.
MIME-Version Да Нет Нет Нет Нет MIME Версия протокола MIME по которому было сформировано сообщение.
Pragma Да Нет Нет Нет Нет HTTP/1.0 Особенные опции выполнения операции.
Proxy-Authenticate Нет Нет Нет Да Нет HTTP-Auth Параметры аутентификации на прокси-сервере.
Proxy-Authorization Нет Да Нет Нет Нет HTTP-Auth Информация для авторизации на прокси-сервере.
Public Нет Нет Нет Да Нет HTTP/1.1 Список доступных методов аналогично Allow, но для всего сервера.
Range Нет Да Нет Нет Нет HTTP/1.1 Байтовые диапазоны для запроса фрагментов ресурса. Подробности: Частичные GET.
Referer Нет Да Нет Нет Нет HTTP/1.0 URI ресурса, после которого клиент сделал текущий запрос.
Retry-After Нет Нет Нет Да Нет HTTP/1.0 Дата или время в секундах после которого можно повторить запрос.
Server Нет Нет Нет Да Нет HTTP/1.0 Список названий и версий веб-сервера и его компонентов с комментариями. Для прокси-серверов поле Via.
Title Нет Нет Да Нет Да HTTP/1.0 Заголовок сущности.
TE Нет Да Нет Нет Нет HTTP/1.1v2 Список расширенных способов кодирования при передаче.
Trailer Да Нет Нет Нет Нет HTTP/1.1v2 Список полей, имеющих отношение к кодированию сообщения при передаче.
Transfer-Encoding Да Нет Нет Нет Нет HTTP/1.1 Список способов кодирования, которые были применены к сообщению для передачи.
Upgrade Да Нет Нет Нет Нет HTTP/1.1 Список предлагаемых клиентом протоколов. Сервер указывает один протокол.
URI Нет Нет Да Нет Да HTTP/1.0 Список URI. В HTTP/1.1 заменено на Location, Content-Location, Vary и Link.
User-Agent Нет Да Нет Нет Нет HTTP/1.0 Список названий и версий клиента и его компонентов с комментариями.
Vary Нет Нет Нет Да Нет HTTP/1.1 Список описывающих ресурс полей из запроса, которые были приняты во внимание.
Via Да Нет Нет Нет Нет HTTP/1.1 Список версий протокола, названий и версий прокси-серверов через которых прошло сообщение.
Warning Да Нет Нет Да Нет HTTP/1.1 Код, агент, сообщение и дата если возникла критическая ситуация.
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) используются только в запросах клиента.

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

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

Allow

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

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

Referer

Основная статья: HTTP referer

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

Примеры:

  • Referer: http://www.example.com/ — полный URI к корню сайта.
  • Referer: http://www.example.org/send-message.php?to=support — пример с параметрами.
  • Referer: /news/2007/08/23/ — указание относительного URI.
  • Referer: http://127.0.0.1/foo/bar-rules.html — такой вариант допустим.
  • Referer: ftp://storage.example.com/archive/foo-notes.htm — переход не с HTTP-ресурса.

User-Agent

Основная статья: User Agent

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

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

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

Content-Language

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

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

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

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

См. также

Ссылки

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

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

pl:Lista nagłówków HTTP th:รายชื่อส่วนหัวของเอชทีทีพี

Личные инструменты

Served in 0.268 secs.