Заголовки http - це

У даній статті містяться загальні відомості про заголовках HTTP.
Опис конкретних заголовків дивіться в статті Список заголовків HTTP.

Заголовки HTTP (англ. HTTP Headers) - це рядки в HTTP-повідомленні, що містять розділену двокрапкою пару ім'я-значення. Формат заголовків відповідає загальному формату заголовків текстових мережевих повідомлень ARPA (див. RFC 822). Заголовки повинні відділятися від тіла повідомлення хоча б одним порожнім рядком.

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

Саме в такому порядку рекомендується посилати заголовки одержувачу.

Загальний формат

Назва параметра має складатися мінімум з одного друкованого символу (ASCII-коди від 33 до 126). Літери в назвах не має значення. Заголовки з невідомими іменами повинні ігноруватися. Після назви відразу повинен слідувати символ двокрапки.

Значення може містити будь-які символи ASCII крім перекладу рядки (код 10) і повернення каретки (код 13). Пробільні символи на початку і кінці значення обрізаються. Послідовність декількох пробільних символів всередині значення може сприйматися як один пробіл. Літери також не має значення (якщо інше не передбачено форматом поля).

Передбачається розміщення значення на кількох рядках (перенесення рядки). Для вказівки перенесення на початку наступного рядка повинен перебувати хоча б один символ пробілу.

Заголовки з однаковими назвами параметрів, але різними значеннями можуть об'єднуватися в один тільки якщо значення поля представляє з себе розділений комами список. У всіх інших випадках значення більш далеких заголовків повинні перекривати попередні. Тому проксі-сервера не повинні міняти порядок проходження заголовків в повідомленні. При цьому порядок елементів списку зазвичай значення не має.

Приклад з багаторядковими значеннями і однаковими іменами заголовків (зверніть увагу на регістр символів і прогалини):

Правильний компактний варіант перетворення і інтерпретації:

В цьому випадку не допустимо приймати значення Content-Length рівне 356. При об'єднанні значень Allow щоб не втратити семантичний сенс була додана кома в кінець першого поля і прибраний безглуздо дублюючийся елемент «GET».

Застосовувані в заголовках структури

дата та час

Тільки дата вказується в заголовках Date. Expires. Last-Modified. If-Modified-Since. If-Unmodified-Since. Дата може бути присутнім в заголовках If-Range і Warning.

У HTTP історично використовується три формату:

Зараз рекомендується використовувати тільки перший формат по RFC 822. але для сумісності клієнтам і серверам краще підтримувати і інші.

Час завжди вказується для часового поясу GMT (UTC + 0). Рік записується чотирма цифрами. День, година, хвилина і секунда доповнюються нулями до двох символів. Для місяці і назви тижні застосовуються трьохбуквені стандартні скорочення англійською мовою.

У PHP для перетворення місцевого часу під час за Гринвічем використовується функція gmdate (). Приклади формування дат для заголовків HTTP:

байтові діапазони

При роботі з фрагментами вмісту в спеціальних заголовках використовуються байтові діапазони (англ. Byte ranges). У них можна вказати як один фрагмент, так і кілька розділяючи їх комами «,». Діапазони застосовуються в заголовках Range і Content-Range. У заголовку Accept-Ranges перераховуються тільки одиниці виміру.

У байтових діапазонах обов'язково на початку зазначаються назва одиниць виміру за яким слід символ «=». На даний момент крім одиниць bytes ніякі інші не застосовуються. За символом «=» розташовуються самі діапазони. Кожен з них є розділеною дефісом «-» парою натуральних чисел або нуля. Перший елемент вказує початковий байт, а другий - кінцевий. Нумерація в діапазонах починається з нуля.

Початковий або кінцевий байт може бути не вказано. При відсутності останнього байта вважається що мова йде про фрагмент від початкового байта до кінця вмісту. Якщо відсутній початок, то номер кінцевого байта сприймається як кількість запитуваних байт від кінця вмісту.

Якщо перший байт більше ніж останній, то діапазон вважається синтаксично недійсним (англ. Syntactically invalid). Поля заголовка, що містять діапазони з синтаксично недійсними значеннями, ігноруються. Якщо перший байт виходить за межі обсягу ресурсу, то діапазон ігнорується. Якщо останній байт виходить за межі вмісту, то діапазон обрізається до кінця.

Блок байтових діапазонів вважається здійсненним якщо в ньому міститься хоча б один доступний діапазон. Якщо ж все діапазони некоректні або виходять за межі обсягу ресурсу, то сервера слід повернути повідомлення зі статусом 416 (Requested range not satisfiable).

Приклади (весь обсяг ресурсу - 5000 байт):

  • bytes = 0-255 - фрагмент від 0-го до 255-го байта включно.
  • bytes = 42-42 - запит одного 42-го байта.
  • bytes = 4000-7499,1000-2999 - два фрагмента. Так як перший виходить за межі, то він інтерпретується як «4000-4999».
  • bytes = 3000-, 6000-8055 - перший інтерпретується як «3000-4999», а другий ігнорується.
  • bytes = -400, -9000 - останні 400 байт (від 4600 до 4999), а другий підганяється під рамки вмісту (від 0 до 4999) позначаючи як фрагмент весь обсяг.
  • bytes = 500-799,600-1023,800-849 - при перетинах діапазони можуть об'єднуватися в один (від 500 до 1023).

Робота з заголовками

Заголовки в HTML

Мова розмітки HTML дозволяє задавати необхідні значення заголовків HTTP всередині за допомогою тега . При цьому назва заголовка вказується в атрибуті http-equiv. а значення - в content. Майже завжди виставляється значення заголовка Content-Type з зазначенням кодування, щоб уникнути проблем з відображенням тексту браузером. Також не зайвим є вказівка ​​значення заголовка Content-Language:

Дивитися що таке "Заголовки HTTP" в інших словниках:

HTTP referer - HTTP Постійне з'єднання · Стиснення · HTTPS Методи OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie · ETag · Location · Referer DNT · X Forwarded For ... Вікіпедія

HTTP 404 - HTTP Постійне з'єднання · Стиснення · HTTPS Методи OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie · ETag · Location · Referer DNT · X Forwarded For ... Вікіпедія

HTTP pipelining - HTTP Постійне з'єднання · Стиснення · HTTPS Методи OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie · ETag · Location · Referer DNT · X Forwarded For ... Вікіпедія

HTTP cookie - Цей термін має також інші значення див. Cookie. HTTP Постійне з'єднання · Стиснення · HTTPS Методи OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie ... Вікіпедія

Список заголовків HTTP - HTTP Постійне з'єднання · Стиснення · HTTPS Методи OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie · ETag · Location · Referer DNT · X Forwarded For ... Вікіпедія

Список кодів стану HTTP - HTTP Постійне з'єднання · Стиснення · HTTPS Методи OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie · ETag · Location · Referer DNT · X Forwarded For ... Вікіпедія

Постійне HTTP-з'єднання - HTTP постійне з'єднання · Стиснення · HTTPS Методи OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie · ETag · Location · Referer DNT · X Forwarded For ... Вікіпедія

Код стану HTTP - SSL Заголовки (список) Cookie · ETag · Referer · User Agent Коди стану Код стану англ. HTTP status code) є частиною першого рядка відповіді сервера. Він являє собою ціле число з трьох арабських цифр. Перша цифра вказує на ... ... Вікіпедія

Коди стану HTTP - SSL Заголовки (список) Cookie · ETag · Referer · User Agent коди стану Код стану англ. HTTP status code) є частиною першого рядка відповіді сервера. Він являє собою ціле число з трьох арабських цифр. Перша цифра вказує на ... ... Вікіпедія

  • Заголовки HTTP. Джессі Рассел. Ця книга буде виготовлена ​​в відповідності з Вашим замовленням за технологією Print-on-Demand. High Quality Content by WIKIPEDIA articles! Заголовки HTTP (англ. HTTP Headers) - це рядки в ... Детальніше Купити за +1125 руб
Інші книги по запросу «Заголовки HTTP» >>

Схожі статті