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

В данной статье описываются конкретные заголовки протокола HTTP.
Общие сведения по заголовкам смотрите в статье Заголовки HTTP.

Согласно современной спецификации RFC 9110[1], заголовки группируются по их назначению и контексту:

  1. Заголовки запроса (англ. Request Headers) — используются в запросах.
  2. Заголовки ответа (англ. Response Headers) — используются в ответах.
  3. Заголовки представления (англ. Representation Headers) — описывают представление ресурса (например, формат и кодировку данных)[2].
  4. Заголовки полезной нагрузки (англ. Payload Headers) — содержат информацию о данных полезной нагрузки независимо от представления[3].

Термины «General Headers» (Общие заголовки) и «Entity Headers» (Заголовки сущности), использовавшиеся в ранних версиях стандарта, являются устаревшими[4][5]. Именно в таком порядке рекомендуется посылать заголовки получателю (программно это не имеет значения, однако даёт удобство при отладке). Сущности и, соответственно, их заголовки могут находиться как в запросах, так и в ответах (при этом в ответе некоторые заголовки могут присутствовать, а в запросе — отсутствовать или наоборот). Следует отметить, что некоторые заголовки могут относиться сразу к нескольким группам (например, Content-Disposition).

Обзорная таблица

В нижеследующей обзорной таблице каждая строка данных соответствует конкретному заголовку, а часть столбцов отведена под их группы. Таблица была составлена на основе анализа зафиксированных в RFC полей заголовка. Такая матрица была сделана для людей, которым важна совместимость версий и динамика. С выходом обновлений протокола некоторые заголовки переносились из одной группы в другую (зачёркнутым «Да» отмечено, куда они входили до этого). Некоторые заголовки были полностью исключены, и по зачёркнутым «Да» можно узнать, в какой группе они находились перед исключением. У некоторых заголовков есть несколько зачёркнутых «Да» (например, URI) — такие заголовки сначала были введены в одной группе, потом перенесены, а позднее вовсе отменены. В колонке «Заголовок» также имеется своё кодирование. Например, полностью исключённые заголовки зачёркнуты, а предлагаемые к исключению помечены курсивом. В 2024 году стандарт RFC 9651 ввёл структурные типы (англ. Structured Fields) для синтаксиса значений заголовков, добавив новую формальную классификацию[6].. В 2025 году RFC 9745 стандартизировал новый заголовок ответа Deprecation для информирования об устаревании ресурсов[7].

Легенда

Краткое обозначение Трактовка
Да Заголовок сейчас относится к указанной в колонке группе.
Нет Заголовок никогда не относился к данной группе.
Да Заголовок раньше относился к данной группе. Если в строке есть зелёное «Да», то его перенесли в другую группу (зачёркнутое — откуда был перенесен). Если же в строке только зачёркнутое «Да» и обычное «Нет», то заголовок вообще был убран. Если несколько зачёркнутых, то заголовок переносился, а потом был вообще убран.
Да Говорит о сомнении. Если на строке только «Нет», то заголовок только собираются включить в протокол (при этом можно уже использовать). Если на строке есть ещё и «Да», то хотят перенести его в другую группу, но ещё окончательно не решено.

Данные

Заголовок GH Запрос Ответ Появление* Назначение Пример
RqH EH RsH EH
Accept Нет Да Нет Нет Нет HTTP/1.0 Список допустимых форматов ресурса. Accept: text/plain
Accept-Charset[6] Нет Да Нет Нет Нет HTTP/1.0 Перечень поддерживаемых кодировок для предоставления пользователю. Accept-Charset: utf-8
Accept-Encoding Нет Да Нет Нет Нет HTTP/1.0 Перечень поддерживаемых способов кодирования содержимого сущности при передаче. Accept-Encoding: <compress | 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
Cache-Control: no-store
Cache-Control: max-age=3600
Cache-Control: max-stale=0
Cache-Control: min-fresh=0
Cache-Control: no-transform
Cache-Control: only-if-cached
Cache-Control: cache-extension
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 08:12:31 GMT
Deprecation Нет Нет Нет Да Нет RFC 9745[7] Информирует клиентов о том, что ресурс был или будет признан устаревшим.
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: ru.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 Указывает на логически связанный с сущностью ресурс аналогично тегу <LINK> в HTML.
Location Нет Нет Нет Да Нет HTTP/1.0 URI по которому клиенту следует перейти или URI созданного ресурса. Location: ссылка|date=Октябрь 2019 |bot=InternetArchiveBot }}
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 Список описывающих ресурс полей из запроса, которые были приняты во внимание. Vary: Accept-Encoding
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) являются основными для запросов клиента и ответов сервера. Большая часть из них являются обязательными. Согласно спецификации RFC 9110, термин «General Headers» признан устаревшим и больше не используется в современных стандартах[1].[4] Утверждение об обязательности большинства таких заголовков также неактуально: в HTTP/1.1 единственным строго обязательным заголовком для запросов является Host, а в HTTP/2 и HTTP/3 применяются обязательные псевдо-заголовки (начинающиеся с двоеточия)[8].

Заголовки запроса

Заголовки запроса (англ. Request Headers) используются только в запросах клиента.

К важным современным заголовкам запроса относятся заголовки группы Fetch Metadata (Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site) для защиты от межсайтовых атак[9], Priority (RFC 9218) для управления приоритетами трафика[10], а также заголовки механизма Client Hints (например, Sec-CH-Prefers-Color-Scheme) для передачи предпочтений клиента[11].

Referer

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

Примеры:

Заголовок Referrer-Policy позволяет управлять тем, какой объём информации об источнике запроса будет включён в заголовок Referer. Для повышения конфиденциальности пользователей значением по умолчанию в большинстве современных браузеров является политика strict-origin-when-cross-origin[12].

User-Agent[править | править код]

Указывает программное обеспечение клиента и его характеристики. Аналогичным ему является Server для серверов и Via для прокси. Современные браузеры (в частности, Google Chrome и Safari) замораживают или сокращают передаваемые в строке User-Agent данные для защиты конфиденциальности пользователей и уменьшения возможностей для создания цифровых отпечатков (фингерпринтинга)[13][14]. На смену этому заголовку в браузерах на базе Chromium пришёл механизм User-Agent Client Hints (включающий заголовки вида Sec-CH-UA)[15].

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

[править | править код]

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

К важным современным заголовкам ответа относятся Alt-Svc, который широко используется браузерами для обнаружения и перехода на протокол HTTP/3[16], а также Proxy-Status (RFC 9209), предназначенный для передачи детальной информации об ошибках и обработке ответов от HTTP-посредников (прокси-серверов и CDN)[17].

Allow[править | править код]

Список поддерживаемых методов целевого ресурса. Согласно спецификации RFC 9110, сервер обязан генерировать заголовок Allow в ответе со статусом 405 Method Not Allowed[1], а также может отправлять его в любых других ответах (например, на метод OPTIONS или со статусом 501).

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

Заголовки представления и полезной нагрузки

[править | править код]

Термин «Заголовки сущности» (англ. Entity Headers) официально признан устаревшим с выходом стандарта RFC 9110[5]. В современной спецификации HTTP вместо него введены заголовки представления (англ. Representation Headers, например, Content-Type, Content-Encoding), которые описывают формат и кодировку передаваемых данных, и заголовки полезной нагрузки (англ. Payload Headers, например, Content-Length, Transfer-Encoding), содержащие информацию о самой полезной нагрузке в том виде, в котором она передаётся[3].

Content-Language[править | править код]

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

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

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

Требования к заголовку Content-Language определяются актуальным стандартом RFC 9110[1], заменившим устаревший RFC 3282. Допустимые значения (языковые субтеги) берутся из постоянно обновляемого реестра IANA Language Subtag Registry[18]. Ссылку на этот реестр вы найдёте в конце данной статьи.

Заголовки безопасности

[править | править код]

Заголовки безопасности HTTP — это набор инструкций, которые сервер отправляет браузеру для усиления защиты веб-приложения от распространённых атак. К ключевым заголовкам относятся:

  • Strict-Transport-Security (HSTS) — принудительно активирует защищённое соединение через протокол HTTPS[19].
  • Content-Security-Policy (CSP) — позволяет контролировать, какие ресурсы браузер может загружать для данной страницы, обеспечивая защиту от межсайтового скриптинга (XSS)[20].
  • X-Content-Type-Options — используется со значением nosniff, которое запрещает браузеру анализировать содержимое файла для определения его типа (MIME-sniffing)[21].
  • Permissions-Policy — позволяет контролировать, какие функции браузера (например, доступ к камере, микрофону или геолокации) могут использоваться на странице[22].

Заголовок X-XSS-Protection признан устаревшим, современные браузеры прекратили его поддержку, поэтому его использование не рекомендуется[23].

Кэширование

[править | править код]

Кэширование в HTTP — это механизм, позволяющий временно сохранять копии веб-ресурсов для их повторного использования, что сокращает задержки, нагрузку на сеть и сервер. Основным стандартом, описывающим базовые принципы кэширования, является RFC 9111[24].

Управление кэшированием Основным заголовком для управления политикой кэширования является Cache-Control[24][25]. Он задаёт правила с помощью набора директив:

  • public — разрешает сохранять ответ в любом кэше, включая браузеры и промежуточные серверы (например, CDN).
  • private — указывает, что ответ предназначен для одного пользователя и может быть кэширован только локально в браузере клиента.
  • max-age — определяет максимальное время (в секундах), в течение которого ресурс считается актуальным и может использоваться без обращения к серверу.
  • no-cache — обязывает клиента перед каждым использованием кэшированной версии отправлять запрос на сервер для проверки её актуальности (ревалидации).
  • no-store — полностью запрещает кэширование ответа, что применяется для защиты конфиденциальной информации[24][25].

Валидация кэша Для проверки актуальности устаревших ресурсов применяется механизм валидации с помощью заголовка ETag. Он представляет собой уникальный идентификатор конкретной версии ресурса. При повторном запросе клиент отправляет сохранённое значение в заголовке If-None-Match. Если ресурс на сервере не изменился, возвращается ответ со статусом 304 Not Modified без тела сообщения, и браузер продолжает использовать свою копию[26].

Вариативность контента Заголовок Vary используется для управления вариативностью контента. Он указывает кэширующим серверам, что ответ на один и тот же URL может различаться в зависимости от значений определённых заголовков запроса. Например, Vary: Accept-Encoding сообщает о необходимости хранить отдельные копии для разных алгоритмов сжатия, а Vary: User-Agent применяется при отдаче различного содержимого для мобильных и десктопных устройств[27].

Проксирование и маршрутизация

[править | править код]

При использовании обратных прокси-серверов критически важной задачей является перезапись HTTP-заголовка ответа Location для обеспечения корректной работы перенаправлений (редиректов). Внутренние приложения часто генерируют ответы с кодами состояния 3xx, указывая в заголовке Location свои внутренние, недоступные извне адреса. Обратный прокси-сервер перехватывает такой ответ и заменяет внутренний адрес на публичный URL. Для этого применяются встроенные механизмы веб-серверов: директива proxy_redirect в Nginx, ProxyPassReverse в Apache HTTP Server и модуль URL Rewrite в IIS[28].[29]

Заголовок Server содержит информацию о программном обеспечении исходного сервера. Для снижения рисков безопасности, связанных с раскрытием информации (что может позволить злоумышленникам идентифицировать известные уязвимости конкретных версий ПО), применяется практика маскировки (обфускации) этого заголовка. Хотя сокрытие версии считается «безопасностью через неясность», оно рекомендуется как дополнительная мера защиты, усложняющая разведку для автоматизированных сканеров. На практике заголовок либо полностью удаляют, либо скрывают номер версии (например, с помощью директивы server_tokens off; в Nginx), оставляя только общее название продукта[30].[31]

Заголовок Via добавляется прямыми и обратными прокси-серверами для отслеживания пути прохождения сообщения, предотвращения циклов запросов и определения возможностей протокола. Каждый прокси-сервер в цепочке добавляет свою запись, включающую версию протокола, идентификатор узла и информацию о программном обеспечении. Использование заголовка Via создаёт риски утечки данных о топологии внутренней сети и облегчает создание цифрового отпечатка инфраструктуры. Для снижения этих рисков применяются использование псевдонимов вместо реальных имён хостов и IP-адресов, а также модификация или полное удаление заголовка на границе сети перед отправкой ответа клиенту[32].[33]

Примечания

[править | править код]
  1. 1 2 3 4 HTTP Semantics. IETF Datatracker (июнь 2022). Дата обращения: 27 апреля 2026.
  2. Representation header. MDN Web Docs. Дата обращения: 27 апреля 2026.
  3. 1 2 HTTP headers. MDN Web Docs. Дата обращения: 27 апреля 2026.
  4. 1 2 General header. MDN Web Docs. Дата обращения: 27 апреля 2026.
  5. 1 2 RFC 9110. RFC Editor. Дата обращения: 27 апреля 2026.
  6. 1 2 HTTP Field Name Registry. IANA. Дата обращения: 27 апреля 2026.
  7. 1 2 The Deprecation HTTP Header Field. IETF Datatracker. Дата обращения: 27 апреля 2026.
  8. Host. MDN Web Docs. Дата обращения: 27 апреля 2026.
  9. Fetch Metadata. W3C. Дата обращения: 27 апреля 2026.
  10. An HTTP Header Field for Prioritized Requests. RFC Editor (июнь 2022). Дата обращения: 27 апреля 2026.
  11. Sec-CH-Prefers-Color-Scheme. MDN Web Docs. Дата обращения: 27 апреля 2026.
  12. HTMLIFrameElement: referrerPolicy property. MDN Web Docs. Дата обращения: 27 апреля 2026.
  13. Frozen Safari User Agent: What Marketers Need to Know. Singular. Дата обращения: 27 апреля 2026.
  14. Latest Browser User Agents (2024). Geekflare. Дата обращения: 27 апреля 2026.
  15. Sec-CH-UA. MDN Web Docs. Дата обращения: 27 апреля 2026.
  16. HTTP/3. IETF Datatracker. Дата обращения: 27 апреля 2026.
  17. The Proxy-Status HTTP Response Header Field. IETF Datatracker. Дата обращения: 27 апреля 2026.
  18. Language Subtag Registry. IANA. Дата обращения: 27 апреля 2026.
  19. Strict-Transport-Security. MDN Web Docs. Дата обращения: 27 апреля 2026.
  20. Content Security Policy (CSP). MDN Web Docs. Дата обращения: 27 апреля 2026.
  21. X-Content-Type-Options. MDN Web Docs. Дата обращения: 27 апреля 2026.
  22. Permissions-Policy. MDN Web Docs. Дата обращения: 27 апреля 2026.
  23. HTTP-заголовки безопасности: усиление безопасности веб-приложений. SecurityLab. Дата обращения: 27 апреля 2026.
  24. 1 2 3 HTTP Caching. IETF Datatracker (июнь 2022). Дата обращения: 27 апреля 2026.
  25. 1 2 Cache-Control. MDN Web Docs. Дата обращения: 27 апреля 2026.
  26. ETag. MDN Web Docs. Дата обращения: 27 апреля 2026.
  27. Vary. MDN Web Docs. Дата обращения: 27 апреля 2026.
  28. Configuring Nginx Reverse Proxy with Backend Redirection. Webshine Tech Community. Дата обращения: 27 апреля 2026.
  29. How to configure Apache as a reverse proxy example. The Server Side. Дата обращения: 27 апреля 2026.
  30. OWASP Secure Headers Project. OWASP. Дата обращения: 27 апреля 2026.
  31. How to remove the Server header in Nginx. GetPageSpeed (28 января 2026). Дата обращения: 27 апреля 2026.
  32. Via. MDN Web Docs. Дата обращения: 27 апреля 2026.
  33. Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. IETF Datatracker. Дата обращения: 27 апреля 2026.

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

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