Ответ
HTTP-заголовки (HTTP Headers) — это строки в формате ключ: значение
, которые передают метаданные о HTTP-запросе или ответе. Они следуют за стартовой строкой и отделяются от тела сообщения пустой строкой.
Заголовки позволяют клиенту и серверу обмениваться служебной информацией, управляя такими аспектами, как:
- Аутентификация и авторизация
- Кэширование
- Управление сессиями (cookies)
- Формат и кодировка передаваемых данных (Content Negotiation)
Пример HTTP-запроса:
GET /api/users/123 HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Authorization: Bearer <token>
Пример HTTP-ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 78
Cache-Control: no-cache
Set-Cookie: session_id=abcde12345; HttpOnly
Основные группы заголовков по назначению:
-
Идентификация и маршрутизация:
Host
: Обязательный заголовок в HTTP/1.1, указывает доменное имя сервера.User-Agent
: Идентифицирует клиентское приложение (например, браузер).Server
: Идентифицирует программное обеспечение веб-сервера.
-
Переговоры о содержимом (Content Negotiation):
Accept
: Сообщает серверу, какие типы контента (MIME-типы) может принять клиент.Accept-Language
: Указывает предпочитаемый язык.Content-Type
: Указывает MIME-тип ресурса в теле сообщения.Content-Length
: Размер тела сообщения в байтах.
-
Аутентификация и сессии:
Authorization
: Содержит учетные данные для аутентификации клиента на сервере.Cookie
: Отправляет на сервер cookie, ранее установленные заголовкомSet-Cookie
.Set-Cookie
: Отправляет cookie от сервера клиенту для сохранения.
-
Кэширование:
Cache-Control
: Содержит директивы для управления кэшированием как для запросов, так и для ответов.ETag
: Идентификатор конкретной версии ресурса, используется для условных запросов.