Ответ
HTTP-заголовки — это пары ключ: значение, которые передают метаданные о запросе или ответе между клиентом и сервером. Они позволяют управлять кэшированием, аутентификацией, передавать информацию о формате данных и многое другое.
Заголовки можно разделить на несколько основных групп:
Request Headers (Заголовки запроса) — отправляются клиентом серверу.
Host: Доменное имя сервера, к которому направлен запрос.User-Agent: Информация о клиенте (например, браузер, curl).Accept: Типы контента, которые клиент может принять в ответе (например,application/json).Authorization: Данные для аутентификации (например,Bearer <token>).Content-Type: MIME-тип тела запроса (дляPOST,PUT).
Response Headers (Заголовки ответа) — отправляются сервером клиенту.
Content-Type: MIME-тип тела ответа.Content-Length: Размер тела ответа в байтах.Set-Cookie: Установка cookie на стороне клиента.Cache-Control: Инструкции по кэшированию ответа.Location: Используется для перенаправления (редиректа) на другой URL.
General Headers (Общие заголовки) — могут присутствовать как в запросах, так и в ответах.
Date: Дата и время формирования сообщения.Connection: Управляет текущим соединением (например,keep-alive).
Пример создания запроса с заголовками в Go:
// Создаем новый GET-запрос
req, _ := http.NewRequest("GET", "https://api.example.com/items", nil)
// Добавляем заголовки
req.Header.Add("Authorization", "Bearer mysecrettoken")
req.Header.Add("Accept", "application/json")
// Отправляем запрос
client := &http.Client{}
resp, err := client.Do(req)