У даній статті описуються конкретні заголовки протоколу HTTP. Загальні відомості по заголовкам дивіться у статті Заголовки HTTP.
Всі заголовки поділяються на чотири основних групи:
General Headers — (укр.Загальні заголовки) — використовуються в запитах і відповідях.
Request Headers — (укр.Заголовки запиту) — використовуються в запитах.
Response Headers — (укр.Заголовки відповіді) — використовуються тільки у відповідях.
Entity Headers — (укр.Заголовки сутності) — супроводжують кожну сутність повідомлення. Використовуються в запитах і відповідях.
Саме в такому порядку рекомендується надсилати заголовки одержувачу (програмно це не має значення, однак дає зручність при налагодженні).
Сутності і, відповідно, їх заголовки можуть перебувати як у запитах, так і у відповідях (при цьому у відповіді деякі заголовки можуть бути присутніми, а в запиті — відсутні або навпаки).
Слід зазначити, що деякі заголовки можуть стосуватися відразу кількох груп (наприклад, Content-Disposition).
Оглядова таблиця
У оглядовій таблиці нижче кожний рядок даних відповідає конкретному заголовку, а частина стовпців відведена під їх групи.
Таблиця була складена на основі аналізу зафіксованих у RFC полів заголовка.
Така матриця була зроблена для людей, яким важлива сумісність версій і динаміка.
З виходом оновлення протоколу деякі заголовки переносилися з однієї групи в іншу (закресленим «Так» зазначено, куди вони входили до цього).
Деякі заголовки були повністю виключені, і за закресленим «Так» можна дізнатися, до якої групи вони перебували перед виключенням.
У деяких заголовків є кілька закреслених «Так» (наприклад, URI) — такі заголовки спочатку були введені в одній групі, потім перенесені, а пізніше зовсім скасовані.
У колонці «Заголовок» також є своє кодування.
Наприклад, повністю виключені заголовки закреслені, а пропоновані до виключення позначені курсивом.
Легенда
Коротке позначення
Трактування
Заголовок зараз стосується зазначеної в колонці групі.
Заголовок ніколи не ставився до цієї групи.
Заголовок раніше ставився до даної групи. Якщо в рядку є зелене «Так», то його перекинули в іншу групу (закреслене — звідки був перекинутий). Якщо ж у рядку тільки закреслене «Та» звичайне «Ні», то заголовок взагалі був прибраний. Якщо кілька закреслених, то заголовок переносився, а потім був взагалі прибраний.
Говорить про сумніви. Якщо в рядку тільки «Ні», то значить заголовок тільки збираються включити в протокол (при цьому можна використовувати). Якщо в рядку є ще і «Так», то хочуть перенести його в іншу групу, але ще остаточно не вирішено.
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 (наприклад, введення з клавіатури адреси).
Вказує програмне забезпечення клієнта та його характеристики. Аналогічним йому є Server для серверів і Via для проксі.
Заголовки відповіді
Заголовки відповіді (англ.Response Headers) включаються тільки у відповіді сервера.
Allow
Список підтримуваних методів всього сервера або конкретного ресурсу. Надсилається сервером разом зі статусами 405 і 501, а також у відповіді на метод OPTIONS.
Приклад: Allow: GET, HEAD, OPTIONS
Заголовки сутності
Заголовки сутності (англ.Entity Headers) — заголовки, які супроводжують кожну сутність як в запитах клієнта, так і у відповідях сервера. Однак, наявність деяких не має сенсу в заголовках запитів (наприклад, Expires). В окремий клас заголовки сутності виділені для того, щоб не плутати їх з заголовками запиту або заголовками відповіді при передачі множинного вмісту (multipart/*). Заголовки запиту і відповіді, як і основні заголовки, описують всі повідомлення в цілому та розміщуються тільки в початковому блоці заголовків, у той час як заголовки сутності характеризують вміст кожної частини окремо розташовуючись безпосередньо перед її тілом.
Content-Language
Вказує один або кілька природних мов вмісту, для носіїв яких вона призначається.
Мови перераховуються через кому, порядок не має значення.
Якщо цей заголовок опущений, то передбачається, що вміст призначений для людей, які розуміють будь-яку мову (або ж мова взагалі не має значення).
При цьому можливо, що людина не знайде там інформацію зрозумілою йому мовою.
Зверніть увагу, що у цьому полі слід вказувати не всі використовувані у документі мови, а тільки ті, які розуміє кінцевий користувач.
Наприклад, якщо це сторінка підручника з англійської мови для україномовної аудиторії, то слід вказувати тільки українську мову, бо для англомовних людей вона не потрібна.
А якщо це сторінка з повідомленням про помилку двома мовами, то потрібно вказувати обидві.
В RFC сказано, що мова вмісту може вказувати для будь-яких медіатипів, а не тільки для тексту.
Наприклад, якщо це відео, де люди говорять англійською, де збоку розташовано віконце з сурдоперекладом на амслені, а внизу розташований переклад субтитрами українською, то заголовок Content-Language повинен мати значення «en, ase, uk».
При цьому, якщо це відео, де герої говорять японською, і присутній голосовий переклад українською, то слід вказати лише українську мову, бо японцям, найімовірніше, буде важко розчути рідну мову.
Заголовок Content-Language описаний не тільки в основних специфікаціях по протоколу HTTP, але і в окремій RFC 3282 «Content-Language Headers».
Всі назви мов реєструються в IANA.
Посилання на їх реєстр ви знайдете в цій статті.