Ответ
HTTP-заголовки классифицируются по их назначению в запросе или ответе. С точки зрения DevOps важно понимать их для настройки веб-серверов, балансировщиков нагрузки (Nginx, HAProxy) и отладки.
Основные категории:
-
General Headers (Общие заголовки): Присутствуют как в запросах, так и в ответах.
Cache-Control: Управляет кешированием (max-age=3600,no-cache).Connection: Управляет сетевым соединением (keep-alive,close).
-
Request Headers (Заголовки запроса): Содержат информацию о клиенте и запросе.
Host: Целевой хост (обязателен в HTTP/1.1).User-Agent: Идентификатор клиентского ПО.Authorization: Учетные данные для аутентификации (Bearer <token>,Basic <credentials>).Accept: Предпочитаемые типы контента (application/json).
-
Response Headers (Заголовки ответа): Содержат информацию о сервере и ответе.
Server: Информация о серверном ПО.Set-Cookie: Устанавливает куки на стороне клиента.Location: Используется для перенаправлений (код 3xx).
-
Representation Headers (Заголовки представления, ранее Entity Headers): Описывают формат и свойства тела сообщения.
Content-Type: MIME-тип тела (text/html; charset=utf-8).Content-Length: Размер тела в байтах.Content-Encoding: Способ сжатия (gzip,br).
DevOps-контекст: Мы часто настраиваем заголовки в Nginx для безопасности и производительности:
location / {
# Добавляем заголовки безопасности
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self';" always;
# Проксируем запрос с передачей заголовков
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://backend;
}
Инструменты вроде curl -I или браузерные DevTools используются для инспекции заголовков при отладке.