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

HTTP
Постійне з'єднання Стиснення HTTPS
Методи
OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT PATCH
Заголовки
Cookie ETag Location Referer
DNT X-Forwarded-For
Коди стану
301 Moved permanently
302 Found
303 See Other
403 Forbidden
404 Not Found
У даній статті описуються конкретні заголовки протоколу HTTP.
Загальні відомості по заголовкам дивіться в статті Заголовки HTTP.

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

  1. General Headers ( рус. Основні заголовки ) - Повинні включатися в будь-яке повідомлення клієнта і сервера.
  2. Request Headers ( рус. Заголовки запиту ) - Використовуються тільки в запитах клієнта.
  3. Response Headers ( рус. Заголовки відповіді ) - Тільки для відповідей від сервера.
  4. Entity Headers ( рус. Заголовки суті ) - Супроводжують кожну сутність повідомлення (може відноситися як до клієнта, так і до сервера).

Саме в такому порядку рекомендується посилати заголовки одержувачу (програмно не має значення, але для зручності при налагодженні). Сутності і, відповідно, їх заголовки можуть знаходитися як у запитах, так і у відповідях (при цьому у відповіді деякі заголовки можуть бути присутніми, а в запиті - отсутсвовали або навпаки). Зверніть увагу на те, що деякі заголовки можуть відноситися відразу до декількох груп (як, наприклад, Content-Disposition).


Оглядова таблиця

В основній таблиці нижче кожен рядок даних відповідає конкретному заголовку, а частина стовпців відведена під їх групи. Таблиця була складена на основі аналізу всіх випущених RFC, але під Така матриця була зроблена для людей, яким важлива сумісність версій і динаміка. З виходом оновлень протоколу деякі заголовки переносилися з одного класу в інший (закресленим "Так" зазначено де вони були до цього). Деякі заголовки були повністю виключені і по закресленим "Так" можна дізнатися де вони були перед виключенням. У деяких заголовків є кілька закреслених "Так" (наприклад, URI) - такі були спочатку введені в одній групі, потім перенесені, а після зовсім скасовані. У колонці "Назва" теж є своє кодування. Наприклад, повністю виключені закреслюються, а якщо курсивом позначено, то можливо виключать.


Легенда

Коротке позначення Трактування
Так Заголовок зараз відноситься до зазначеної в колонці групі.
Немає Тема ніколи не ставився до цієї групи.
Так Тема раніше ставився до цієї групи. Якщо в рядку є зелене "Так", то його перекинули в іншу групу (закреслене - звідки був перекинутий). Якщо ж в рядку тільки закреслене "Так" і звичайне "Ні", то заголовок взагалі був прибраний. Якщо кілька закреслених, то заголовок переносився, а потім був взагалі прибраний.
Так Говорить про сумніві. Якщо на рядку тільки "ні", то значить заголовок тільки збираються включити в протокол (при цьому можна вже використовувати). Якщо на рядку є ще і "Так", то хочуть перенести його в іншу групу, але ще остаточно не вирішено.

Дані

Тема GH Запит Відповідь Поява * Призначення Приклад
RqH EH RsH EH
Accept Немає Так Немає Немає Немає HTTP/1.0 Список допустимих форматів ресурсу. Accept: text / plain
Accept-Charset Немає Так Немає Немає Немає HTTP/1.0 Перелік підтримуваних кодувань для надання користувачу. Accept-Charset: utf-8
Accept-Encoding Немає Так Немає Немає Немає HTTP/1.0 Перелік підтримуваних способів кодування вмісту суті при передачі. Accept-Encoding: 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
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 8: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: en.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 Вказує на логічно зв'язний з сутністю ресурс аналогічно тегу в 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 Список описують ресурс полів із запиту, які були взяті до уваги.
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

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

Приклади:


User-Agent

Вказує програмне забезпечення клієнта і його характеристики. Аналогічним йому є 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. Посилання на їх реєстр ви знайдете в кінці цієї статті.