Skip to content
← Все статьи

HTTP заголовки: полное руководство

проверку HTTP-заголовков — это метаданные, которые передаются между клиентом (браузером) и сервером вместе с каждым HTTP запросом и ответом. Они определяют, как обрабатывать данные, какой контент возвращать, как кэшировать ответы и многое другое.

Как работают HTTP заголовки

Каждый HTTP запрос и ответ состоит из трёх частей: стартовая строка, заголовки и тело. Заголовки представляют собой пары «имя: значение», разделённые переводом строки:

GET /api/data HTTP/1.1
Host: example.com
Accept: application/json
Authorization: Bearer eyJhbGci...
User-Agent: Mozilla/5.0

Сервер отвечает с собственным набором заголовков:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: max-age=3600
X-Request-Id: abc-123

Типы HTTP заголовков

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

Отправляются клиентом серверу и содержат информацию о запросе и клиенте:

ЗаголовокОписаниеПример
HostДоменное имя сервера (обязателен в HTTP/1.1)Host: example.com
AcceptКакие типы контента принимает клиентAccept: text/html, application/json
Accept-LanguageПредпочитаемые языки ответаAccept-Language: ru, en;q=0.8
Accept-EncodingПоддерживаемые алгоритмы сжатияAccept-Encoding: gzip, br
AuthorizationУчётные данные для аутентификацииAuthorization: Bearer token123
CookieCookies, ранее установленные серверомCookie: session=abc; theme=dark
User-AgentИнформация о клиенте (браузер, ОС)User-Agent: Mozilla/5.0...
RefererURL страницы, с которой пришёл запросReferer: https://google.com/
If-None-MatchETag для условного запроса (кэширование)If-None-Match: "abc123"
If-Modified-SinceДата для условного запросаIf-Modified-Since: Mon, 01 Jan 2025...

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

Отправляются сервером клиенту и содержат информацию о ресурсе и инструкции для обработки:

ЗаголовокОписаниеПример
Content-TypeMIME-тип возвращаемого контентаContent-Type: text/html; charset=utf-8
Content-LengthРазмер тела ответа в байтахContent-Length: 3842
Content-EncodingАлгоритм сжатия тела ответаContent-Encoding: gzip
Set-CookieУстановка cookie на клиентеSet-Cookie: session=abc; HttpOnly; Secure
LocationURL для перенаправления (3xx) или нового ресурса (201)Location: https://example.com/new
ServerИнформация о веб-сервереServer: nginx/1.24
ETagИдентификатор версии ресурсаETag: "abc123"
Last-ModifiedДата последнего изменения ресурсаLast-Modified: Mon, 01 Jan 2025...

Заголовки кэширования

Кэширование — одна из самых важных оптимизаций производительности. HTTP заголовки позволяют точно контролировать, как и где кэшируются ресурсы:

Cache-Control

Основной заголовок управления кэшем. Поддерживает множество директив:

  • max-age=3600 — ресурс можно кэшировать на 3600 секунд
  • no-cache — кэшировать можно, но перед использованием нужно проверить на сервере
  • no-store — полный запрет кэширования (для конфиденциальных данных)
  • public — можно кэшировать на CDN и прокси-серверах
  • private — кэшировать только в браузере пользователя
  • must-revalidate — после истечения max-age обязательно проверить на сервере
  • immutable — ресурс никогда не изменится (для файлов с хэшем в имени)

Стратегии кэширования

Статические ресурсы (CSS, JS, изображения) с хэшем в имени файла:

Cache-Control: public, max-age=31536000, immutable

HTML страницы, которые могут обновляться:

Cache-Control: no-cache
ETag: "v2.1.0-abc"

Конфиденциальные данные (личный кабинет, API документацию ответы с персональной информацией):

Cache-Control: no-store

Заголовки CORS

Cross-Origin Resource Sharing (CORS) позволяет серверу указать, какие домены могут обращаться к его ресурсам из браузера:

ЗаголовокОписание
Access-Control-Allow-OriginРазрешённый домен (или * для всех)
Access-Control-Allow-MethodsРазрешённые HTTP методы
Access-Control-Allow-HeadersРазрешённые заголовки запроса
Access-Control-Max-AgeВремя кэширования preflight-запроса
Access-Control-Allow-CredentialsРазрешить отправку cookies

Пример настройки для API:

Access-Control-Allow-Origin: https://myapp.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Max-Age: 86400

Заголовки для SEO

Некоторые HTTP заголовки напрямую влияют на индексацию и SEO:

  • X-Robots-Tag: noindex — запрет индексации через HTTP (аналог meta robots)
  • Link: </page>; rel="canonical" — каноничный URL через заголовок
  • Vary: Accept-Encoding — сообщает CDN, что контент зависит от сжатия
  • Content-Language: ru — язык контента

Частые ошибки

  • Отсутствие Content-Type — браузер может неправильно интерпретировать контент
  • настройка Cache-Control без стратегии — приводит к устаревшим данным или лишним запросам
  • CORS: Access-Control-Allow-Origin: * с credentials — запрещено спецификацией и не работает
  • Раскрытие Server и X-Powered-By — утечка информации о стеке, облегчает атаки
  • Отсутствие заголовков безопасности — уязвимость к XSS, clickjacking, MIME-SNI

Проверьте ваш сайт прямо сейчас

Проверить HTTP-статус сайта →
Другие статьи: HTTP
HTTP
HTTP-методы: GET, POST, PUT, DELETE и другие
16.03.2026 · 157 просм.
HTTP
Цепочки редиректов и их влияние на SEO
15.04.2026 · 95 просм.
HTTP
Ошибка 404 Not Found: 7 причин и как исправить
15.04.2026 · 128 просм.
HTTP
429 Too Many Requests: rate limiting и обход
15.04.2026 · 134 просм.