Поля заголовка HTTP являются компонентами раздела заголовка сообщений запроса и ответа в протоколе передачи гипертекста (HTTP). Они определяют рабочие параметры HTTP-транзакции.
Общий формат
Поля заголовка передаются после строки запроса (в случае сообщения HTTP с запросом) или строки ответа (в случае сообщения HTTP ответа), которая является первой строкой сообщения. Поля заголовка представляют собой пары ключ-значение, разделенные двоеточиями, в формате строки с открытым текстом , заканчивающиеся последовательностью символов возврата каретки (CR) и перевода строки (LF). Конец раздела заголовка обозначается пустой строкой поля, что приводит к передаче двух последовательных пар CR-LF. Раньше длинные строки можно было складывать в несколько строк; строки продолжения обозначаются наличием пробела (SP) или горизонтальной табуляции (HT) в качестве первого символа в следующей строке. Это сворачивание теперь устарело. [1]
Имена полей
Основной набор полей стандартизирован Инженерной группой Интернета (IETF) в RFC 7230, 7231, 7232, 7233, 7234 и 7235. Постоянный реестр полей заголовков и репозиторий предварительных регистраций поддерживаются IANA . Имена дополнительных полей и допустимые значения могут определяться каждым приложением.
Имена полей заголовка нечувствительны к регистру. [2] Это контрастирует с именами методов HTTP (GET, POST и т. Д.), Которые чувствительны к регистру. [3] [4]
HTTP / 2 накладывает некоторые ограничения на определенные поля заголовка (см. Ниже).
Нестандартные поля заголовка обычно помечались префиксом имени поля, X-
но это соглашение было объявлено устаревшим в июне 2012 года из-за неудобств, которые оно вызвало, когда нестандартные поля стали стандартными. [5] Ранее ограничение на использование Downgraded-
было снято в марте 2013 года. [6]
Значения полей
Некоторые поля могут содержать комментарии (например, в полях «Пользователь-агент», «Сервер», «Через»), которые могут игнорироваться программным обеспечением. [7]
Многие значения полей могут содержать пару «ключ-значение» качества ( q ), разделенную знаком равенства , определяющую вес для использования при согласовании содержимого . [8] Например, браузер может указать, что он принимает информацию на немецком или английском языке, с немецким языком как предпочтительный, установив значение qde
выше, чем у en
, как показано ниже:
Accept-Language: de; q=1.0, en; q=0.5
Ограничения по размеру
Стандарт не налагает ограничений на размер каждого имени или значения поля заголовка или на количество полей. Однако большинство серверов, клиентов и программного обеспечения прокси налагают некоторые ограничения по практическим соображениям и соображениям безопасности. Например, сервер Apache 2.3 по умолчанию ограничивает размер каждого поля 8190 байтами, а в одном запросе может быть не более 100 полей заголовка. [9]
Поля запроса
Стандартные поля запроса
Имя | Описание | Пример | Статус | Стандарт |
---|---|---|---|---|
ЦЕЛЬ | Допустимые манипуляции с экземплярами для запроса. [10] | A-IM: feed | Постоянный | RFC 3229 |
Принимать | Тип (ы) СМИ , которые приемлемы для ответа. См. Согласование содержания . | Accept: text/html | Постоянный | RFC 2616 , 7231 |
Accept-Charset | Допустимые наборы символов. | Accept-Charset: utf-8 | Постоянный | RFC 2616 |
Принять-Datetime | Приемлемая версия вовремя. | Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT | Предварительный | RFC 7089 |
Принять-кодирование | Список допустимых кодировок. См. Сжатие HTTP . | Accept-Encoding: gzip, deflate | Постоянный | RFC 2616 , 7231 |
Принять-язык | Список приемлемых человеческих языков для ответа. См. Согласование содержания . | Accept-Language: en-US | Постоянный | RFC 2616 , 7231 |
Метод -запроса-управления доступом, Заголовки-запроса-управления доступом [11] | Инициирует запрос на совместное использование ресурсов из разных источников с Origin (см. Ниже). | Access-Control-Request-Method: GET | Постоянный: стандартный | |
Авторизация | Учетные данные для аутентификации HTTP . | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | Постоянный | |
Кэш-контроль | Используется для указания директив, которым должны подчиняться все механизмы кэширования в цепочке запрос-ответ. | Cache-Control: no-cache | Постоянный | |
Связь | Параметры управления для текущего соединения и список полей поэтапного запроса. [12] Не должно использоваться с HTTP / 2. [13] | Connection: keep-alive | Постоянный | |
Content-Encoding | Тип кодировки данных. См. Сжатие HTTP . | Content-Encoding: gzip | Постоянный | |
Content-Length | Длина тела запроса в октетах (8-битных байтах). | Content-Length: 348 | Постоянный | |
Content-MD5 | Base64 закодирована двоичной MD5 сумма содержимого тела запроса. | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== | Устарело [14] | |
Тип содержимого | Тип носителя тела запроса (используется с запросами POST и PUT). | Content-Type: application/x-www-form-urlencoded | Постоянный | |
Cookie-файлы | Файл cookie HTTP, ранее отправленный сервером с помощью Set-Cookie (см. Ниже). | Cookie: $Version=1; Skin=new; | Постоянный: стандартный | |
Дата | Дата и время, когда было отправлено сообщение (в формате «HTTP-дата», как определено в RFC 7231 Date / Time Formats ). | Date: Tue, 15 Nov 1994 08:12:31 GMT | Постоянный | |
Ожидать | Указывает, что конкретное поведение сервера требуется клиенту. | Expect: 100-continue | Постоянный | |
Переадресовано | Раскрыть исходную информацию о клиенте, подключающемся к веб-серверу через HTTP-прокси. [15] | Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 Forwarded: for=192.0.2.43, for=198.51.100.17 | Постоянный | |
Из | Электронный адрес пользователя, отправившего запрос. | From: [email protected] | Постоянный | |
Хозяин | Доменное имя сервера (для виртуального хостинга ) и номер TCP-порта, на котором сервер прослушивает. Номер порта можно не указывать, если это стандартный порт для запрашиваемой услуги. Обязательно с HTTP / 1.1. [16] Если запрос генерируется непосредственно в HTTP / 2, его не следует использовать. [17] | Host: en.wikipedia.org:8080
| Постоянный | |
HTTP2-Настройки | Запрос, который обновляется с HTTP / 1.1 до HTTP / 2, ДОЛЖЕН содержать ровно одно HTTP2-Setting поле заголовка. Поле HTTP2-Settings заголовка - это поле заголовка, зависящее от соединения, которое включает параметры, управляющие соединением HTTP / 2, предоставляемые в ожидании того, что сервер примет запрос на обновление. [18] [19] | HTTP2-Settings: token64 | Постоянный: стандартный | |
Если совпадение | Выполняйте действие только в том случае, если предоставленная клиентом сущность совпадает с той же сущностью на сервере. Это в основном для таких методов, как PUT, чтобы обновлять ресурс только в том случае, если он не был изменен с момента последнего обновления пользователем. | If-Match: "737060cd8c284d8af7ad3082f209582d" | Постоянный | |
If-Modified-Since | Позволяет возвращать 304 Not Modified , если содержимое не изменилось. | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT | Постоянный | |
Если-нет-совпадение | Позволяет возвращать 304 Not Modified , если содержимое не изменилось, см. HTTP ETag . | If-None-Match: "737060cd8c284d8af7ad3082f209582d" | Постоянный | |
Если-диапазон | Если объект не изменился, пришлите мне недостающие части; в противном случае пришлите мне всю новую сущность. | If-Range: "737060cd8c284d8af7ad3082f209582d" | Постоянный | |
Если-Неизмененный-С | Отправляйте ответ только в том случае, если объект не изменялся с определенного времени. | If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT | Постоянный | |
Макс-нападающие | Ограничьте количество раз, когда сообщение может быть переадресовано через прокси или шлюзы. | Max-Forwards: 10 | Постоянный | |
Происхождение [11] | Инициирует запрос на совместное использование ресурсов между источниками (запрашивает у сервера поля ответа Access-Control- * ). | Origin: http://www.example-social-network.com | Постоянный: стандартный | |
Прагма | Зависящие от реализации поля, которые могут иметь различные эффекты в любом месте цепочки запрос-ответ. | Pragma: no-cache | Постоянный | |
Предпочитать | Позволяет клиенту запрашивать использование сервером определенного поведения во время обработки запроса. | Prefer: return=representation | Постоянный | RFC 7240 |
Прокси-авторизация | Учетные данные для подключения к прокси. | Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | Постоянный | |
Диапазон | Запросите только часть объекта. Байты нумеруются, начиная с 0. См. « Байтовое обслуживание» . | Range: bytes=500-999 | Постоянный | |
Referer [ так в оригинале ] | Это адрес предыдущей веб-страницы, с которой переходили по ссылке на текущую запрашиваемую страницу. (Слово «реферер» было написано с ошибками в RFC, а также в большинстве реализаций до такой степени, что оно стало стандартным использованием и считается правильной терминологией) | Referer: http://en.wikipedia.org/wiki/Main_Page | Постоянный | |
TE | Кодировки передачи, которые пользовательский агент готов принять: могут использоваться те же значения, что и для поля заголовка ответа Transfer-Encoding, плюс значение "трейлеров" (связанное с методом " фрагментированной " передачи) для уведомления сервера, который он ожидает получать дополнительные поля в трейлере после последнего блока нулевого размера.
| TE: trailers, deflate | Постоянный | |
Трейлер | Значение общего поля трейлера указывает, что данный набор полей заголовка присутствует в трейлере сообщения, закодированного с помощью кодирования передачи по частям . | Trailer: Max-Forwards | Постоянный | |
Передача-кодирование | Форма кодирования, используемая для безопасной передачи объекта пользователю. В настоящее время определены следующие методы : chunked , compress, deflate, gzip, identity. Не должно использоваться с HTTP / 2. [13] | Transfer-Encoding: chunked | Постоянный | |
Пользователь-агент | Агентом пользователя Строка пользовательского агента. | User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0 | Постоянный | |
Обновление | Попросите сервер перейти на другой протокол. Не должно использоваться в HTTP / 2. [13] | Upgrade: h2c, HTTPS/1.3, IRC/6.9, RTA/x11, websocket | Постоянный | |
Через | Сообщает серверу о прокси, через которые был отправлен запрос. | Via: 1.0 fred, 1.1 example.com (Apache/1.1) | Постоянный | |
Предупреждение | Общее предупреждение о возможных проблемах с телом сущности. | Warning: 199 Miscellaneous warning | Постоянный |
Общие нестандартные поля запроса
Имя поля | Описание | Пример |
---|---|---|
Upgrade-Insecure-Requests [20] | Сообщает серверу, на котором (предположительно, в середине миграции HTTP -> HTTPS) размещается смешанный контент, что клиент предпочел бы перенаправление на HTTPS и мог бы обрабатывать Content-Security-Policy: upgrade-insecure-requests Не должно использоваться с HTTP / 2 [13] | Upgrade-Insecure-Requests: 1 |
X-Requested-With | В основном используется для идентификации запросов Ajax (большинство фреймворков JavaScript отправляют это поле со значением XMLHttpRequest ); также идентифицирует приложения Android с помощью WebView [21] | X-Requested-With: XMLHttpRequest |
DNT [22] | Запрашивает веб-приложение отключить отслеживание пользователя. Это версия поля заголовка X-Do-Not-Track в Mozilla (начиная с Firefox 4.0 Beta 11). Safari и IE9 также поддерживают это поле. [23] 7 марта 2011 г. в IETF был представлен проект предложения. [24] W3C защиты Рабочая группа по отслеживанию производит спецификацию. [25] | DNT: 1 (Не отслеживать включен)
|
X-Forwarded-For [26] | Де - факто стандартом для определения IP - адреса БЕРУЩИХ клиента , подключаемого к веб - серверу через HTTP - прокси или балансировки нагрузки. Заменено заголовком " Переадресовано" . | X-Forwarded-For: client1, proxy1, proxy2
|
X-Forwarded-Host [27] | Де - факто стандарт для определения оригинального хоста , запрошенного клиентом в Host заголовке запроса HTTP, так как имя хоста и / или порт обратного прокси - сервер (балансировки нагрузки) может отличаться от происхождения обработки запроса сервера. Заменено заголовком " Переадресовано" . | X-Forwarded-Host: en.wikipedia.org:8080
|
X-Forwarded-Proto [28] | Де факто стандарт для идентификации протокола , исходящих из запроса HTTP, так как обратный прокси - сервер (или балансировки нагрузки) может взаимодействовать с веб - сервером , используя HTTP , даже если запрос на обратный прокси - сервер HTTPS. Альтернативная форма заголовка (X-ProxyUser-Ip) используется клиентами Google, общающимися с серверами Google. Заменено заголовком " Переадресовано" . | X-Forwarded-Proto: https |
Front-End-HTTPS [29] | Нестандартное поле заголовка, используемое приложениями Microsoft и балансировщиками нагрузки. | Front-End-Https: on |
X-Http-Method-Override [30] | Запрашивает веб-приложение для переопределения метода, указанного в запросе (обычно POST), с помощью метода, указанного в поле заголовка (обычно PUT или DELETE). Это можно использовать, когда пользовательский агент или брандмауэр предотвращает прямую отправку методов PUT или DELETE (обратите внимание, что это либо ошибка в программном компоненте, которую следует исправить, либо преднамеренная конфигурация, и в этом случае ее обход может быть неправильный поступок). | X-HTTP-Method-Override: DELETE |
X-ATT-DeviceId [31] | Позволяет упростить синтаксический анализ MakeModel / Firmware, который обычно находится в строке User-Agent устройств AT&T. | X-Att-Deviceid: GT-P7320/P7320XXLPG |
X-Wap-Profile [32] | Ссылки на XML-файл в Интернете с полным описанием и подробностями об устройстве, которое в настоящее время подключается. В примере справа показан файл XML для AT&T Samsung Galaxy S2. | x-wap-profile: http://wap.samsungmobile.com/uaprof/SGH-I777.xml |
Прокси-соединение [33] | Реализовано как непонимание спецификаций HTTP. Часто из-за ошибок в реализации ранних версий HTTP. Имеет ту же функциональность, что и стандартное поле подключения. Не должно использоваться с HTTP / 2. [13] | Proxy-Connection: keep-alive |
X-UIDH [34] [35] [36] | Глубокая вставка на стороне сервера уникального идентификатора, идентифицирующего клиентов Verizon Wireless ; также известный как "постоянное печенье" или "суперпеченье". | X-UIDH: ... |
X-CSRF-токен [37] | Используется для предотвращения подделки межсайтовых запросов . Альтернативные названия заголовков: X-CSRFToken [38] и X-XSRF-TOKEN [39] | X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql |
X-Request-ID, [40] [41] X-Correlation-ID [42] [43] | Сопоставляет HTTP-запросы между клиентом и сервером. | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
Сохранить данные [44] | Заголовок запроса подсказки клиента Save-Data, доступный в браузерах Chrome, Opera и Yandex, позволяет разработчикам доставлять более легкие и быстрые приложения пользователям, которые выбрали режим сохранения данных в своем браузере. | Save-Data: on |
Поля ответа
Стандартные поля ответа
Имя поля | Описание | Пример | Статус | Стандарт |
---|---|---|---|---|
Принять-CH | Запросы HTTP-клиентских подсказок | Accept-CH: UA, Platform | Экспериментальный | RFC 8942 |
Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Expose-Headers, Access-Control-Max-Age, Access-Control-Allow-Methods, Access-Control-Allow-Headers [11] | Указание того, какие веб-сайты могут участвовать в совместном использовании ресурсов из разных источников | Access-Control-Allow-Origin: * | Постоянный: стандартный | |
Accept-Patch [45] | Определяет, какие форматы документов исправлений поддерживает этот сервер. | Accept-Patch: text/example;charset=utf-8 | Постоянный | |
Принять-диапазоны | Какие типы частичного диапазона содержимого поддерживает этот сервер с помощью обслуживания байтов | Accept-Ranges: bytes | Постоянный | |
Возраст | Возраст объекта в кеше прокси в секундах. | Age: 12 | Постоянный | |
Позволять | Допустимые методы для указанного ресурса. Использование для метода 405 запрещено. | Allow: GET, HEAD | Постоянный | |
Alt-Svc [46] | Сервер использует заголовок «Alt-Svc» (означающий «Альтернативные службы»), чтобы указать, что к его ресурсам также можно получить доступ из другого сетевого местоположения (хоста или порта) или с использованием другого протокола. При использовании HTTP / 2 серверы должны вместо этого отправлять кадр ALTSVC. [47] | Alt-Svc: http/1.1="http2.example.com:8001"; ma=7200 | Постоянный | |
Кэш-контроль | Сообщает всем механизмам кэширования от сервера к клиенту, могут ли они кэшировать этот объект. Измеряется в секундах | Cache-Control: max-age=3600 | Постоянный | |
Связь | Параметры управления для текущего соединения и список полей ответа по этапам. [12] Не должно использоваться с HTTP / 2. [13] | Connection: close | Постоянный | |
Content-Disposition [48] | Возможность вызвать диалоговое окно «Загрузка файла» для известного типа MIME в двоичном формате или предложить имя файла для динамического содержимого. Цитаты обязательны со специальными символами. | Content-Disposition: attachment; filename="fname.ext" | Постоянный | |
Content-Encoding | Тип кодировки данных. См. Сжатие HTTP . | Content-Encoding: gzip | Постоянный | |
Content-Language | Естественный язык или языки целевой аудитории вложенного контента [49] | Content-Language: da | Постоянный | |
Content-Length | Длина тела ответа в октетах (8-битных байтах) | Content-Length: 348 | Постоянный | |
Content-Location | Альтернативное место для возвращаемых данных | Content-Location: /index.htm | Постоянный | |
Content-MD5 | Base64 закодирована двоичной MD5 сумму содержания ответа | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== | Устарело [14] | |
Content-Range | Где в полном теле сообщения это частичное сообщение | Content-Range: bytes 21010-47021/47022 | Постоянный | |
Тип содержимого | Тип MIME этого контента | Content-Type: text/html; charset=utf-8 | Постоянный | |
Дата | Дата и время отправки сообщения (в формате «HTTP-дата», как определено в RFC 7231) [50] | Date: Tue, 15 Nov 1994 08:12:31 GMT | Постоянный | |
Дельта-База | Задает тег объекта дельта-кодирования ответа. [10] | Delta-Base: "abc" | Постоянный | |
ETag | Идентификатор конкретной версии ресурса, часто дайджест сообщения. | ETag: "737060cd8c284d8af7ad3082f209582d" | Постоянный | |
Истекает | Указывает дату / время, после которых ответ считается устаревшим (в формате «HTTP-дата», как определено в RFC 7231). | Expires: Thu, 01 Dec 1994 16:00:00 GMT | Постоянный: стандартный | |
Я | К ответу применены инстансы-манипуляции. [10] | IM: feed | Постоянный | |
Последнее изменение | Дата последнего изменения запрошенного объекта (в формате «HTTP-дата», как определено в RFC 7231). | Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT | Постоянный | |
Ссылка на сайт | Используется для выражения типизированной связи с другим ресурсом, где тип связи определяется RFC 5988 | Link: ; rel="alternate" [51] | Постоянный | |
Место расположения | Используется при перенаправлении или при создании нового ресурса. |
| Постоянный | |
P3P | Это поле предназначено для установки политики P3P в форме P3P:CP="your_compact_policy" . Однако P3P не стал популярным, [52] большинство браузеров так и не реализовали его полностью, многие веб-сайты устанавливают это поле с фальшивым текстом политики, этого было достаточно, чтобы обмануть браузеры существованием политики P3P и предоставить разрешения для сторонних файлов cookie . | P3P: CP="This is not a P3P policy! See https://en.wikipedia.org/wiki/Special:CentralAutoLogin/P3P for more info." | Постоянный | |
Прагма | Зависящие от реализации поля, которые могут иметь различные эффекты в любом месте цепочки запрос-ответ. | Pragma: no-cache | Постоянный | |
Применяемые предпочтения | Указывает, какие токены Prefer были учтены сервером и применены для обработки запроса. | Preference-Applied: return=representation | Постоянный | RFC 7240 |
Прокси-аутентификация | Запросить аутентификацию для доступа к прокси. | Proxy-Authenticate: Basic | Постоянный | |
Пины с открытым ключом [53] | HTTP Public Key Pinning , объявляет хэш подлинного сертификата TLS веб-сайта | Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; | Постоянный | |
Повторить после | Если объект временно недоступен, это указывает клиенту повторить попытку позже. Значение может быть указанным периодом времени (в секундах) или датой HTTP. [54] |
| Постоянный | RFC 2616 , 7231 |
Сервер | Имя для сервера | Server: Apache/2.4.1 (Unix) | Постоянный | |
Set-Cookie | HTTP печенье | Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 | Постоянный: стандартный | |
Строгая транспортная безопасность | Политика HSTS, информирующая HTTP-клиента о том, как долго следует кэшировать политику только HTTPS и применимо ли это к поддоменам. | Strict-Transport-Security: max-age=16070400; includeSubDomains | Постоянный: стандартный | |
Трейлер | Значение общего поля трейлера указывает, что данный набор полей заголовка присутствует в трейлере сообщения, закодированного с помощью кодирования передачи по частям . | Trailer: Max-Forwards | Постоянный | |
Передача-кодирование | Форма кодирования, используемая для безопасной передачи объекта пользователю. В настоящее время определены следующие методы : chunked , compress, deflate, gzip, identity. Не должно использоваться с HTTP / 2. [13] | Transfer-Encoding: chunked | Постоянный | |
Tk | Заголовок статуса отслеживания, значение, которое предлагается отправить в ответ на DNT (do-not-track), возможные значения: "!" - в разработке"?" - динамический«G» - шлюз для нескольких сторон«N» - не отслеживает«Т» - трекинг«C» - отслеживание с согласия«П» - отслеживание только при наличии согласия«D» - без учета DNT«U» - обновлено | Tk: ? | Постоянный | |
Обновление | Попросите клиента перейти на другой протокол. Не должно использоваться в HTTP / 2 [13] | Upgrade: h2c, HTTPS/1.3, IRC/6.9, RTA/x11, websocket | Постоянный | |
Отличаться | Сообщает нижестоящим прокси, как сопоставлять заголовки будущих запросов, чтобы решить, можно ли использовать кэшированный ответ, а не запрашивать новый с исходного сервера. |
| Постоянный | |
Через | Информирует клиента о прокси-серверах, через которые был отправлен ответ. | Via: 1.0 fred, 1.1 example.com (Apache/1.1) | Постоянный | |
Предупреждение | Общее предупреждение о возможных проблемах с телом сущности. | Warning: 199 Miscellaneous warning | Постоянный | |
WWW-аутентификация | Указывает схему аутентификации, которая должна использоваться для доступа к запрошенному объекту. | WWW-Authenticate: Basic | Постоянный | |
Параметры X-Frame [55] | Защита от кликджекинга : deny - без рендеринга в кадре, sameorigin - без рендеринга при несоответствии происхождения, allow-from - разрешить из указанного места, allowall - нестандартно, разрешить из любого места | X-Frame-Options: deny | Устарело [56] |
Общие нестандартные поля ответа
Имя поля | Описание | Пример |
---|---|---|
Content-Security-Policy, X-Content-Security-Policy, X-WebKit-CSP [57] | Определение политики безопасности контента . | X-WebKit-CSP: default-src 'self' |
NEL [58] | Используется для настройки ведения журнала сетевых запросов. | NEL: { "report_to": "name_of_reporting_group", "max_age": 12345, "include_subdomains": false, "success_fraction": 0.0, "failure_fraction": 1.0 } |
Политика разрешений [59] | Чтобы разрешить или отключить различные функции или API-интерфейсы браузера. | Permissions-Policy: fullscreen=(), camera=(), microphone=(), geolocation=(), interest-cohort=()[60] |
Обновить | Используется при перенаправлении или при создании нового ресурса. Это обновление перенаправляется через 5 секунд. Расширение заголовка, представленное Netscape и поддерживаемое большинством веб-браузеров. Определено стандартом HTML [61] | Refresh: 5; url=http://www.w3.org/pub/WWW/People.html |
Кому сообщить [62] | Указывает агенту пользователя хранить конечные точки отчетов для источника. | Report-To: { "group": "csp-endpoint", "max_age": 10886400, "endpoints": [ { "url": "https-url-of-site-which-collects-reports" } ] } |
Статус | Поле заголовка CGI, определяющее статус ответа HTTP. В обычных ответах HTTP вместо этого используется отдельная «Строка состояния», определенная в RFC 7230. [63] | Status: 200 OK |
Время-Разрешить-Происхождение | В Timing-Allow-Origin заголовке ответа Определяет происхождение, которым разрешено видеть значение атрибутов , получаемых с помощью особенностей Timing API ресурсов , которые иначе было бы отчётным нуль из - за ограничения поперечного происхождения. [64] | Timing-Allow-Origin: *
|
X-Content-Duration [65] | Укажите продолжительность аудио или видео в секундах; поддерживается только браузерами Gecko | X-Content-Duration: 42.666 |
Параметры X-Content-Type [66] | Единственное определенное значение, «nosniff», не позволяет Internet Explorer анализировать MIME- анализ ответа, отличного от объявленного типа содержимого. Это также относится к Google Chrome при загрузке расширений. [67] | X-Content-Type-Options: nosniff [68] |
X-Powered-By [69] | Указывает на технологию (например , ASP.NET, PHP, JBoss) с поддержкой веб - приложений (подробности версия часто в X-Runtime , X-Version или X-AspNet-Version ) | X-Powered-By: PHP/5.4.0 |
X-Redirect-By [70] | Задает компонент, отвечающий за конкретное перенаправление. | X-Redirect-By: WordPress X-Redirect-By: Polylang |
X-Request-ID, X-Correlation-ID [40] | Сопоставляет HTTP-запросы между клиентом и сервером. | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
Совместимость с X-UA [71] | Рекомендует использовать предпочтительный механизм визуализации (часто режим обратной совместимости) для отображения содержимого. Также используется для активации Chrome Frame в Internet Explorer. В стандарте HTML IE=edge определяется только значение. [72] | X-UA-Compatible: IE=edge X-UA-Compatible: IE=EmulateIE7 X-UA-Compatible: Chrome=1 |
X-XSS-защита [73] | Фильтр межсайтового скриптинга (XSS) | X-XSS-Protection: 1; mode=block |
Эффекты выбранных полей
Как избежать кеширования
Если веб-сервер отвечает, Cache-Control: no-cache
тогда веб-браузер или другая система кэширования (промежуточные прокси) не должны использовать ответ для удовлетворения последующих запросов без предварительной проверки с исходным сервером (этот процесс называется проверкой). Это поле заголовка является частью HTTP версии 1.1 и игнорируется некоторыми кешами и браузерами. Это можно смоделировать, установив Expires
значение поля заголовка HTTP версии 1.0 на время, предшествующее времени ответа. Обратите внимание, что no-cache не указывает браузеру или прокси-серверам, следует ли кэшировать контент. Он просто сообщает браузеру и прокси-серверам проверять содержимое кеша на сервере перед его использованием (это делается с помощью атрибутов If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, упомянутых выше). Таким образом, отправка значения без кеширования указывает браузеру или прокси-серверу не использовать содержимое кеша только на основании «критериев свежести» содержимого кеша. Еще один распространенный способ предотвратить показ старого контента пользователю без проверки - это Cache-Control: max-age=0
. Это указывает пользовательскому агенту, что содержимое устарело и перед использованием его следует проверить.
Поле заголовка Cache-Control: no-store
предназначено для указания приложению браузера сделать все возможное, чтобы не записывать его на диск (то есть не кэшировать).
Запрос о том, что ресурс не должен кэшироваться, не гарантирует, что он не будет записан на диск. В частности, определение HTTP / 1.1 проводит различие между хранилищами истории и кешами. Если пользователь возвращается к предыдущей странице, браузер все равно может показывать вам страницу, которая была сохранена на диске в хранилище истории. Это правильное поведение согласно спецификации. Многие пользовательские агенты демонстрируют различное поведение при загрузке страниц из хранилища истории или кеша в зависимости от того, какой протокол используется - HTTP или HTTPS.
Поле Cache-Control: no-cache
заголовка HTTP / 1.1 также предназначено для использования в запросах, сделанных клиентом. Это средство, с помощью которого браузер сообщает серверу и любым промежуточным кэшам, что ему нужна свежая версия ресурса. Поле Pragma: no-cache
заголовка, определенное в спецификации HTTP / 1.0, имеет ту же цель. Однако он определен только для заголовка запроса. Его значение в заголовке ответа не указывается. [74] Поведение Pragma: no-cache
в ответе зависит от реализации. Хотя некоторые пользовательские агенты обращают внимание на это поле в ответах, [75] RFC HTTP / 1.1 специально предостерегает от использования такого поведения.
Смотрите также
- Внедрение HTTP-заголовка
- HTTP ETag
- Список кодов состояния HTTP
Рекомендации
- ^ «Протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация» . ietf.org . Проверено 23 июля 2014 года .
- ^ RFC-7230, раздел 3.2
- ^ RFC-7210, раздел 3.1.1
- ^ RFC-7231 раздел 4.1
- ^ Инженерная группа Интернета (1 июня 2012 г.). «RFC 6648» . Проверено 12 ноября 2012 года .
- ^ «Заголовки сообщений» . Iana.org. 11 июня 2014 . Проверено 12 июня 2014 года .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация» . itef.org . Проверено 24 июля 2014 года .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание» . ietf.org . Проверено 24 июля 2014 года .
- ^ «ядро - HTTP-сервер Apache» . Httpd.apache.org. Архивировано из оригинала 9 мая 2012 года . Проверено 13 марта 2012 года .
- ^ а б в RFC 3229 . DOI : 10,17487 / RFC3229 .
- ^ а б в «Совместное использование ресурсов между источниками» . Проверено 24 июля 2017 года .
- ^ а б «Протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация» . IETF . Июнь 2014 . Проверено 19 декабря 2014 года .
- ^ Б с д е е г ч I «Протокол передачи гипертекста версии 2 (HTTP / 2)» . IETF . Май 2015 . Проверено 6 июня 2017 года .
- ^ а б «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание» . Проверено 3 июня 2015 года .
- ^ «Перенаправленное расширение HTTP: Введение» . IETF . Июнь 2014 . Проверено 7 января 2016 года .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация» . IETF . Июнь 2014 . Проверено 24 июля 2014 года .
- ^ «Протокол передачи гипертекста версии 2 (HTTP / 2)» . IETF . Май 2015 . Проверено 6 июня 2017 года .
- ^ «Заголовки сообщений» . www.iana.org . Проверено 26 ноября 2018 года .
- ^ «Протокол передачи гипертекста версии 2 (HTTP / 2)» . httpwg.org . 30 мая 2015 года . Проверено 22 февраля 2019 года .
- ^ «Небезопасные запросы на обновление - рекомендация кандидата W3C» . W3C . 8 октября 2015 года . Проверено 14 января 2016 года .
- ^ https://www.stoutner.com/the-x-requested-with-header/
- ^ «Попробуйте HTTP-заголовок« Не отслеживать »» . Проверено 31 января 2011 года .
- ^ «Защита от веб-отслеживания: минимальные стандарты и возможности для инноваций» . Проверено 24 марта 2011 года .
- ^ IETF Do Not Track: отказ от универсального стороннего веб-отслеживания 7 марта 2011 г.
- ^ W3C Tracking Preference Expression (DNT) , 26 января 2012 г.
- ^ Амос Джеффрис (2 июля 2010 г.). "SquidFaq / ConfiguringSquid - Squid Web Proxy Wiki" . Проверено 10 сентября 2009 года .
- ^ Фонд программного обеспечения Apache. «mod_proxy - HTTP-сервер Apache версии 2.2» . Проверено 12 ноября 2014 года .
- ^ Дэйв Стейнберг (10 апреля 2007 г.). «Как мне настроить мой сайт SSL для работы с балансировщиком нагрузки GeekISP?» . Проверено 30 сентября 2010 года .
- ^ «Помощь в безопасном обмене данными: от клиента к серверу переднего плана» . 27 июля 2006 . Проверено 23 апреля 2012 года .
- ^ «Спецификация сервера API OpenSocial Core 2.5.1» . Проверено 8 октября 2014 года .
- ^ «Идентификатор устройства ATT» . Проверено 14 января 2012 года .
- ^ «Профиль WAP» . Проверено 14 января 2012 года .
- ^ де Бойн Поллард, Джонатан (2007). «Заголовок Proxy-Connection: является ошибкой из-за того, как некоторые веб-браузеры используют HTTP» . Проверено 16 января 2018 года .
- ^ «Verizon внедряет постоянные файлы cookie для отслеживания мобильных клиентов в обход средств контроля конфиденциальности» . Electronic Frontier Foundation . Проверено 19 января 2014 года .
- ^ «Проверка известных радиомаяков с уникальными идентификаторами AT&T, Verizon, Sprint, Bell Canada и Vodacom» . Проверено 19 января 2014 года .
- ^ Крейг Тимберг. «Verizon, AT&T отслеживает своих пользователей с помощью« супер - файлов cookie » » . Вашингтон Пост . Проверено 19 января 2014 года .
- ^ «Защита от подделки межсайтовых запросов SAP» . SAP SE . Проверено 20 января 2015 года .
- ^ "Защита от подделки межсайтовых запросов Django" . Django (веб-фреймворк) . Архивировано из оригинала на 20 января 2015 года . Проверено 20 января 2015 года .
- ^ «Защита от подделки межсайтовых запросов Angular (XSRF)» . AngularJS . Проверено 20 января 2015 года .
- ^ а б "Что такое http-заголовок X-REQUEST-ID?" . stackoverflow.com . Проверено 19 мая 2016 года .
- ^ «Идентификаторы HTTP-запросов» . devcenter.heroku.com . Проверено 6 февраля 2018 года .
- ^ «Значение идентификаторов корреляции» . Блог Rapid7 . 23 декабря 2016 . Проверено 13 апреля 2018 года .
- ^ Хилтон, Питер. «Идентификаторы корреляции для микросервисных архитектур - Питер Хилтон» . hilton.org.uk . Проверено 13 апреля 2018 года .
- ^ «Проект отчета группы сообщества по сохранению данных API живого документа 2.1.1. Поле заголовка запроса сохранения данных» . Группа сообщества инкубатора веб-платформ . 30 июня 2020 . Проверено 5 марта 2021 года .
- ^ «RFC 5789» . Проверено 24 декабря 2014 года .
- ^ «Альтернативные службы HTTP» . IETF. Апреля 2016 . Проверено 19 апреля 2016 года .
- ^ «Альтернативные службы HTTP, раздел 3» . IETF. Апреля 2016 . Проверено 8 июня 2017 года .
- ^ «RFC 6266» . Проверено 13 марта 2015 года .
- ^ «RFC 7231 - протокол передачи гипертекста (HTTP / 1.1): семантика и контент» . Tools.ietf.org . Проверено 11 декабря 2017 года .
- ^ «Заголовки даты HTTP, соответствующие RFC7231» .
- ^ Укажите каноническую версию URL, ответив HTTP-заголовком Link rel = "canonical". Получено: 09.02.2012.
- ^ Работа W3C P3P приостановлена
- ^ «Расширение закрепления открытого ключа для HTTP» . IETF . Проверено 17 апреля 2015 года .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание» . Проверено 24 июля 2014 года .
- ^ "Параметры X-кадра поля заголовка HTTP" . IETF. 2013 . Проверено 12 июня 2014 года .
- ^ «Уровень политики безопасности контента 2» . Проверено 2 августа 2014 года .
- ^ «Политика безопасности контента» . W3C. 2012 . Проверено 28 апреля 2017 года .
- ^ «НЕЛ» . Сеть разработчиков Mozilla . 2021 . Проверено 18 мая 2021 года .
- ^ «Политика разрешений» . W3C. 2020 . Проверено 1 мая 2021 года .
- ^ "Я потерпел неудачу?" . ЭФФ. 2021 . Проверено 1 мая 2021 года .
- ^ «Определите заголовок HTTP Refresh с помощью annevk · Pull Request # 2892 · whatwg / html» . GitHub . 9 августа 2017 года . Проверено 17 апреля 2021 года .
- ^ «CSP: получатель отчета» . Сеть разработчиков Mozilla . 2021 . Проверено 18 мая 2021 года .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация» . Проверено 24 июля 2014 года .
- ^ «Время-Разрешить-Происхождение» . Сеть разработчиков Mozilla . Проверено 25 января 2018 года .
- ^ «Настройка серверов для Ogg media» . 26 мая 2014 года . Проверено 3 января 2015 года .
- ^ Эрик Лоуренс (3 сентября 2008 г.). «Безопасность IE8, часть VI: обновление бета-версии 2» . Проверено 28 сентября 2010 года .
- ^ «Хостинг - Расширения Google Chrome - Код Google» . Проверено 14 июня 2012 года .
- ^ ван Кестерен, Энн (26 августа 2016 г.). "Привести стандарт" . WHATWG . Архивировано 26 августа 2016 года . Проверено 26 августа 2016 года .
- ^ «Почему платформа ASP.NET добавляет в ответы HTTP-заголовок« X-Powered-By: ASP.NET »? - Stack Overflow» . Проверено 30 сентября 2010 года .
- ^ «Заголовок HTTP-ответа X-Redirect-By» . Проверено 29 мая 2021 года .
- ^ «Определение совместимости документов: определение режимов совместимости документов» . 1 апреля 2011 . Проверено 24 января 2012 года .
- ^ «Директивы HTML Living Standard 4.2.5.3 Pragma, состояние совместимости с X-UA» . WHATWG . 12 марта 2021 . Проверено 14 марта 2021 года .
Для метаэлементов с атрибутом http-Equiv в состоянии X-UA-Compatible атрибут содержимого должен иметь значение, которое соответствует строке без учета регистра ASCII
"IE=edge"
. - ^ Эрик Лоуренс (2 июля 2008 г.). «Безопасность IE8, часть IV: фильтр XSS» . Проверено 30 сентября 2010 года .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): кэширование» . ietf.org . Проверено 24 июля 2014 года .
- ^ «Как предотвратить кеширование в Internet Explorer» . Microsoft . 22 сентября 2011 . Проверено 15 апреля 2015 года .
Внешние ссылки
- Заголовки: имена полей заголовка постоянного сообщения
- RFC 6265: Механизм управления состоянием HTTP IETF
- RFC 7230: протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация
- RFC 7231: протокол передачи гипертекста (HTTP / 1.1): семантика и контент
- RFC 7232: протокол передачи гипертекста (HTTP / 1.1): условные запросы
- RFC 7233: протокол передачи гипертекста (HTTP / 1.1): запросы диапазона
- RFC 7234: протокол передачи гипертекста (HTTP / 1.1): кэширование
- RFC 7235: протокол передачи гипертекста (HTTP / 1.1): аутентификация
- RFC 7239: перенаправленное расширение HTTP
- RFC 7240: предпочитать заголовок для HTTP
- Заголовки HTTP / 1.1 с точки зрения веб-сервера
- Internet Explorer и настраиваемые заголовки HTTP - IEInternals от EricLaw - Домашняя страница сайта - Блоги MSDN