Заголовки HTTP — это пары «ключ‑значение», передаваемые в составе HTTP‑запросов и ответов для обмена метаданными между клиентом (например, браузером) и сервером. Они уточняют контекст взаимодействия: описывают содержимое, управляют кэшированием, аутентификацией, безопасностью и др.
Как выглядят
Формат строго регламентирован:
ИмяЗаголовка: значение
- Имя не чувствительно к регистру.
- После двоеточия может идти пробел (игнорируется).
- Каждое поле — отдельная строка.
Пример запроса с заголовками:
GET /page.html HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 Accept: text/html
Основные категории заголовков
- Общие (General Headers)
Применяются и к запросам, и к ответам, но не касаются тела сообщения.
Пример:Date,Connection. - Заголовки запроса (Request Headers)
Сообщают серверу информацию о клиенте и желаемом ресурсе.
Примеры:Host— доменное имя сервера.User-Agent— сведения о браузере/ОС.Accept— типы контента, которые клиент готов принять (text/html,application/jsonи т. п.).
- Заголовки ответа (Response Headers)
Передают клиенту данные о сервере и способе доставки ресурса.
Примеры:Server— программное обеспечение сервера.Location— новый URL при перенаправлении (статус3xx).WWW-Authenticate— схема аутентификации.
- Заголовки сущности (Entity Headers)
Описывают тело сообщения (размер, тип, кодировку).
Примеры:Content-Type— MIME-тип данных (text/plain,image/png).Content-Length— размер тела в байтах.Content-Encoding— метод сжатия (gzip,deflate).
Ключевые примеры заголовков
Authorization— учетные данные для аутентификации (например, JWT-токен).Cookie— отправляет сохранённые куки на сервер.Set-Cookie— сервер просит клиент сохранить куки.Cache-Control— правила кэширования (no-cache,max-age=3600).ETag— идентификатор версии ресурса для валидации кэша.Content-Disposition— указывает, отображать ли контент в браузере или предлагать скачать (attachment).Referer— URL страницы, откуда пришёл запрос.User-Agent— информация о клиенте (браузер, ОС, устройство).
Зачем нужны
- Управление кэшированием — сокращают нагрузку на сервер и ускоряют загрузку.
- Аутентификация и авторизация — обеспечивают доступ только уполномоченным пользователям.
- Тип контента — позволяют клиенту правильно обработать ответ (текст, изображение, JSON и т. д.).
- Перенаправления — указывают новый адрес ресурса.
- Безопасность — ограничивают источники запросов (
CORS), задают политики контента (Content-Security-Policy). - Сжатие — уменьшают объём передаваемых данных (
Content-Encoding: gzip). - Сеансы — поддерживают состояние через куки.
Важные нюансы
- Заголовки не содержат самих данных — они лишь описывают запрос/ответ.
- Многие заголовки стандартны (определены в RFC), но можно создавать пользовательские (рекомендуется префикс
X-, хотя это уже не обязательно). - Размер заголовков ограничен (зависит от сервера/прокси).
- Некоторые заголовки чувствительны к порядку или взаимодействуют друг с другом (например,
Cache-ControlиETag).
Таким образом, заголовки HTTP — это «метаинструкция» для корректного, безопасного и эффективного обмена данными в веб.
