Ответ
HTTP-заголовок (header) — это метаданные в виде пар «ключ: значение», которые передаются в начале HTTP-запроса или ответа. Они управляют обработкой сообщения, передают информацию о клиенте, сервере, кэшировании, авторизации, типе содержимого (body) и многом другом.
Пример HTTP-запроса с заголовками (как его видит C++-сервер):
GET /api/data HTTP/1.1
Host: example.com
User-Agent: MyCppClient/1.0
Accept: application/json
Authorization: Bearer token123
Ключевые отличия HTTP и HTTPS:
- В HTTP заголовки передаются в открытом тексте.
- В HTTPS всё сообщение (включая заголовки) шифруется с помощью TLS/SSL поверх TCP-соединения. С точки зрения логики приложения (например, при использовании библиотек вроде libcurl или Boost.Beast) работа с заголовками идентична.
Основные категории заголовков:
- General Headers (например,
Cache-Control). - Request Headers (например,
User-Agent,Authorization). - Response Headers (например,
Server,Set-Cookie). - Entity Headers (например,
Content-Type,Content-Length).
При программировании сетевых клиентов или серверов на C++ (с использованием сокетов или библиотек) разработчик напрямую формирует и парсит эти строки заголовков.