← Назад к вопросам

Какие знаешь Headers HTTP?

2.3 Middle🔥 161 комментариев
#JavaScript Core

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI4 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

HTTP-заголовки: классификация и ключевые примеры

HTTP-заголовки — это неотъемлемая часть протокола HTTP, представляющая собой пары «ключ-значение», которые передаются в запросах и ответах между клиентом и сервером. Они выполняют множество функций: управление кешированием, аутентификация, описание содержимого, управление соединением и многое другое. Я разделю основные заголовки на категории для лучшего понимания.

1. Заголовки запроса (Request Headers)

Эти заголовки отправляются клиентом (например, браузером) на сервер.

  • Host (обязательный в HTTP/1.1): Указывает доменное имя и порт сервера. Необходим, когда на одном IP размещено несколько сайтов (виртуальный хостинг).
    Host: example.com:8080
    
  • User-Agent: Содержит информацию о клиентском приложении (браузер, ОС, версии).
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
    
  • Accept: Сообщает серверу, какие типы контента (MIME-типы) клиент может обработать.
    Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
    
  • Accept-Encoding: Указывает допустимые методы сжатия (gzip, brotli).
    Accept-Encoding: gzip, deflate, br
    
  • Authorization: Содержит учетные данные для аутентификации на сервере (часто Bearer token или Basic auth).
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
    
  • Cookie: Передает cookies, ранее установленные сервером.
    Cookie: sessionId=abc123; theme=dark
    
  • Referer (с опечаткой в спецификации): Адрес предыдущей страницы, с которой пришел пользователь.
  • Cache-Control: Директивы управления кешированием для запроса (no-cache, max-age).

2. Заголовки ответа (Response Headers)

Эти заголовки отправляются сервером в ответ клиенту.

  • Server: Информация о серверном ПО.
    Server: nginx/1.18.0
    
  • Set-Cookie: Устанавливает cookie на стороне клиента.
    Set-Cookie: sessionId=xyz789; Path=/; HttpOnly; Secure
    
  • Cache-Control: Управление кешированием ответа. Ключевые директивы: public, private, no-store, max-age=3600.
  • Content-Type: Определяет MIME-тип тела ответа и часто кодировку.
    Content-Type: application/json; charset=utf-8
    
  • Content-Encoding: Указывает, каким методом сжато тело ответа.
    Content-Encoding: gzip
    
  • Content-Length: Размер тела ответа в байтах.
  • Location: Используется при редиректах (3xx статусы) или создании ресурса (201 Created) для указания нового адреса.
    Location: /new-page.html
    
  • Access-Control-Allow-Origin: Ключевой заголовок CORS (Cross-Origin Resource Sharing), который указывает, с каких доменов разрешены кросс-доменные запросы.
    Access-Control-Allow-Origin: https://trusted-site.com
    
  • Strict-Transport-Security (HSTS): Инструмент безопасности, который предписывает браузеру подключаться к серверу только по HTTPS.

3. Общие заголовки (General Headers)

Могут присутствовать как в запросе, так и в ответе.

  • Cache-Control (общий): Наиболее важный и современный механизм управления кешем.
  • Connection: Управление соединением (keep-alive для повторного использования, close для разрыва).
  • Date: Дата и время создания сообщения.
  • Transfer-Encoding: Указывает, что тело сообщения передается частями (chunked), что полезно для стриминга.

4. Заголовки-представители (Representation Headers)

Описывают формат (репрезентацию) данных в теле сообщения.

  • Content-Type (упомянут выше).
  • Content-Encoding (упомянут выше).
  • Content-Language: Язык целевой аудитории (напр., en-US).

Практическое значение для фронтенд-разработчика

Понимание HTTP-заголовков критически важно для:

  • Оптимизации производительности: Правильная настройка Cache-Control, использование сжатия через Accept-Encoding / Content-Encoding.
  • Безопасности: Понимание CORS (Access-Control-Allow-Origin), защита cookies (HttpOnly, SameSite), внедрение HSTS.
  • Работы с API: Настройка Authorization для токенов, корректное указание Accept и Content-Type (например, application/json).
  • Отладки: Анализ заголовков в панели разработчика (вкладка Network) помогает диагностировать проблемы с кешированием, CORS, аутентификацией.
  • SEO и аналитики: Заголовок Referer используется для анализа трафика.

Например, типичный запрос к REST API и ответ будут включать такой набор:

GET /api/users/1 HTTP/1.1
Host: api.example.com
Authorization: Bearer <token>
Accept: application/json

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: private, max-age=60
Access-Control-Allow-Origin: https://myapp.com

{"id": 1, "name": "John Doe"}

Глубокое знание заголовков позволяет фронтенд-разработчику осознанно взаимодействовать с бэкендом, строить эффективные, безопасные и быстрые веб-приложения.

Какие знаешь Headers HTTP? | PrepBro