HTTP-заголовки
headers · метаданные HTTP-запросов и ответов
Что это
HTTP-заголовки — набор пар «имя: значение», передаваемых до тела запроса или ответа. Задают контекст: кто, откуда, что за формат, куки, кеширование, авторизация и т.д.
Пример запроса
GET /api/user HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64)
Accept: application/json
Authorization: Bearer eyJhbGciOi...
Cookie: session=abc123
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 156
Cache-Control: max-age=3600
Set-Cookie: session=abc123; HttpOnly
Server: nginx/1.24.0
Ключевые заголовки запроса
- Host — какой домен (обязательный в HTTP/1.1)
- User-Agent — идентификатор клиента (браузер, версия)
- Accept — какие форматы клиент готов принять
- Accept-Language, Accept-Encoding — язык, сжатие (gzip, br)
- Authorization — токен, Basic, Bearer, API-key
- Cookie — куки от сайта
- Referer — откуда пришёл (опечатка «Referer» вместо «Referrer» осталась в стандарте с 1996 года)
- Origin — источник для CORS
- Content-Type — формат тела (для POST/PUT)
Ключевые заголовки ответа
- Content-Type — что за данные в теле (
text/html; charset=utf-8,application/json) - Content-Length — размер тела в байтах
- Cache-Control —
no-store,max-age=3600,public/private - ETag, Last-Modified — для условных запросов (кеш)
- Location — куда редиректить (для 301/302)
- Set-Cookie — поставить куку клиенту
- Server — идентификатор сервера (nginx, apache)
- Strict-Transport-Security (HSTS) — принудительно HTTPS
- Content-Security-Policy (CSP) — правила загрузки ресурсов, защита от XSS
- Access-Control-Allow-Origin — CORS, кому можно кросс-сайтом
Кастомные
Раньше кастомные заголовки называли с префиксом X- (X-Request-ID, X-Forwarded-For). Стандарт больше не требует префикса, но по традиции пишут его для читаемости.