Сайт работает, но ведёт себя странно: кеширует не то, отдаёт неверный код статуса, не перенаправляет на HTTPS или не выставляет заголовки безопасности. Всё это видно в HTTP-заголовках — метаданных, которые сервер отправляет вместе с ответом. HTTP-заголовки — инструмент, который показывает, что именно возвращает сайт: код ответа, сервер, параметры кеширования, cookies, цепочку перенаправлений и заголовки безопасности.
В этой статье разберём, что означают основные заголовки, зачем нужны security-заголовки, чем GET отличается от HEAD и как читать таблицу, которую показывает инструмент.

Что показывает инструмент
HTTP-заголовки принимает адрес страницы и метод запроса. По умолчанию используется GET — как браузер, но без загрузки тела страницы. Метод HEAD запрашивает только заголовки.
Результат включает:
Код ответа — 200, 301, 404, 500 и другие. Главный индикатор того, как сервер обработал запрос.
Заголовки ответа — Server, Content-Type, Cache-Control, Set-Cookie, Location и десятки других.
Цепочку перенаправлений — если включена опция «Переходить по перенаправлениям», инструмент показывает все шаги: с какого адреса на какой шёл переход и с какими кодами.
Запрос выполняет сервер сайта. Внутренние и служебные адреса (localhost, 192.168.x.x, 10.x.x.x) запрещены, в том числе после перенаправлений — инструмент не предназначен для сканирования локальных сетей.
GET и HEAD: в чём разница
GET — стандартный метод. Сервер возвращает и заголовки, и тело страницы. Инструмент использует GET по умолчанию, но тело не загружает: нужны только заголовки.
HEAD — тот же запрос, но без тела. Сервер должен вернуть те же заголовки, что и на GET, но без содержимого. Это быстрее и экономнее.
На практике: некоторые серверы отвечают на HEAD иначе, чем на GET, или вовсе не поддерживают HEAD. Поэтому по умолчанию используется GET — он даёт более достоверную картину того, что видит браузер.
Заголовки безопасности: зачем они нужны
Это одна из главных причин проверять заголовки. Security-заголовки говорят браузеру, как безопасно обрабатывать страницу. Если их нет, сайт работает, но менее защищён.
Strict-Transport-Security (HSTS) — заставляет браузер ходить на сайт только по HTTPS. Если заголовок есть, браузер запоминает это на указанное время и не даёт перейти на HTTP даже по прямой ссылке. Защищает от понижения протокола и перехвата cookies [citation:5][citation:12].
Content-Security-Policy (CSP) — ограничивает источники, с которых можно загружать скрипты, стили, изображения и фреймы. Это главная защита от XSS и внедрения кода: даже если злоумышленник вставит скрипт, браузер не выполнит его, если источник не разрешён [citation:2][citation:5].
X-Content-Type-Options — со значением nosniff запрещает браузеру «угадывать» MIME-тип. Без этого заголовка браузер может интерпретировать загруженный файл как HTML или скрипт, даже если сервер указал другой тип. Защищает от подмены типа [citation:5][citation:12].
X-Frame-Options — запрещает или ограничивает встраивание страницы во фрейм на чужом сайте. Защищает от кликджекинга — атаки, при которой пользователь думает, что нажимает на одну кнопку, а на самом деле нажимает на другую [citation:5][citation:12].
Дополнительно встречаются Referrer-Policy (какие данные передавать в заголовке Referer при переходе по ссылкам) и Permissions-Policy (какие API браузера доступны странице).
Таблица основных заголовков
Ориентир по заголовкам, которые чаще всего встречаются в ответах. Часть из них — стандартные метаданные, часть — безопасность и кеширование.
Общие заголовки ответа
| Заголовок | Что означает |
|---|---|
Server |
Программное обеспечение сервера (nginx, Apache и т. п.) |
Content-Type |
MIME-тип содержимого: text/html, application/json и т. д. |
Content-Length |
Размер тела ответа в байтах |
Date |
Дата и время формирования ответа |
Connection |
Параметры соединения (keep-alive, close) |
Кеширование
| Заголовок | Что означает |
|---|---|
Cache-Control |
Директивы кеширования: max-age, no-store, private, public |
Expires |
Дата, после которой ресурс считается устаревшим |
ETag |
Уникальный идентификатор версии ресурса для условных запросов |
Last-Modified |
Дата последнего изменения ресурса |
Cache-Control — основной заголовок кеширования. Директива max-age задаёт время в секундах, no-store запрещает кешировать, private разрешает кеширование только в браузере пользователя [citation:13].
Cookies и перенаправления
| Заголовок | Что означает |
|---|---|
Set-Cookie |
Устанавливает cookie: имя, значение и атрибуты (Secure, HttpOnly, SameSite) |
Location |
Адрес перенаправления (вместе с кодом 3xx) |
WWW-Authenticate |
Схема аутентификации, если требуется авторизация |
Безопасность
| Заголовок | Что означает |
|---|---|
Strict-Transport-Security |
Только HTTPS для этого домена |
Content-Security-Policy |
Разрешённые источники контента |
X-Content-Type-Options |
Запрет MIME-sniffing (nosniff) |
X-Frame-Options |
Запрет или ограничение встраивания во фрейм |
Referrer-Policy |
Какие данные передавать в Referer |
Информационные (прочие)
| Заголовок | Что означает |
|---|---|
X-Powered-By |
Система, на которой запущен сервис, выдавший ответ |
X-GIRVAS-CMS |
Использование CMS «ГИРВАС» запущенным сервисом, выдавшим ответ. Обычно ответом служит число «1» |
Как читать цепочку перенаправлений
Если включить опцию «Переходить по перенаправлениям», инструмент покажет все шаги: с какого адреса на какой шёл переход и с какими кодами.
Типичная картина для сайта с HTTPS:
http://example.com→ код 301 →https://example.comhttps://example.com→ код 200 (или ещё один редирект, например сwwwна безwww)
Что важно проверять:
- Коды 301 и 302 — постоянное и временное перенаправление. Для перехода на HTTPS правильнее 301.
- Циклы — если редиректы ходят по кругу, браузер покажет ошибку. Цепочка в инструменте поможет это увидеть.
- Лишние шаги — цепочка из трёх-четырёх редиректов замедляет загрузку. Иногда её можно сократить.
Зачем проверять HTTP-заголовки
Аудит безопасности. Проверить, выставлены ли HSTS, CSP, X-Content-Type-Options и X-Frame-Options. Их отсутствие — не ошибка, но повод задуматься.
Диагностика кеширования. Понять, почему браузер кеширует страницу не так, как ожидается. Cache-Control и Expires дают ответ.
Проверка перенаправлений. Убедиться, что HTTP перенаправляет на HTTPS, а старые адреса — на новые, без лишних шагов и циклов.
Анализ cookies. Посмотреть, какие cookie устанавливает сайт и с какими атрибутами (Secure, HttpOnly, SameSite).
Проверка кода ответа. Убедиться, что страница отдаёт 200, а не 404 или 500, и что редиректы настроены правильно.
Ограничения инструмента
Только внешние адреса. Запросы к localhost, 192.168.x.x, 10.x.x.x и другим внутренним адресам запрещены, в том числе после перенаправлений. Это защита от использования инструмента для сканирования локальных сетей.
Один адрес за раз. Инструмент проверяет одну страницу за запрос. Для массовой проверки нужно запускать его несколько раз.
Заголовки могут отличаться от браузерных. Сервер может отвечать по-разному в зависимости от User-Agent, cookies и других заголовков запроса. Инструмент отправляет свой запрос, и результат — это то, что видит он, а не обязательно ваш браузер.
Как пользоваться: пошагово
- Введите адрес страницы — например,
https://example.com. - Выберите метод: GET — как браузер (по умолчанию), HEAD — только заголовки.
- Включите «Переходить по перенаправлениям», если нужно увидеть всю цепочку.
- Нажмите «Получить заголовки» и изучите код ответа, заголовки и шаги редиректов.
Типичные ошибки
Использовать HEAD и удивляться отличиям. Некоторые серверы отвечают на HEAD иначе, чем на GET. Для достоверной картины используйте GET.
Ждать, что заголовки совпадут с браузерными один в один. Сервер может отвечать по-разному в зависимости от запроса. Инструмент показывает свой результат.
Проверять localhost или внутренний адрес. Инструмент этого не делает — запрещено намеренно.
Считать отсутствие security-заголовков критической ошибкой. Сайт работает и без них. Но если вы отвечаете за безопасность, их отсутствие — повод добавить.
Игнорировать цепочку редиректов. Лишние шаги замедляют загрузку, а циклы ломают переходы. Включите опцию и посмотрите.
Вопросы и ответы
Чем GET отличается от HEAD? Оба запроса возвращают заголовки, но на HEAD сервер не отдаёт тело страницы. Некоторые серверы отвечают на HEAD иначе, чем на GET, поэтому по умолчанию используется GET (тело не загружается).
Зачем заголовки безопасности? Strict-Transport-Security заставляет браузер ходить только по HTTPS, Content-Security-Policy ограничивает источники скриптов, X-Content-Type-Options и X-Frame-Options защищают от подмены типа и встраивания во фрейм.
Можно ли проверить сайт в локальной сети? Нет. Запросы к внутренним и служебным адресам (localhost, 192.168.x.x, 10.x.x.x и т. п.) запрещены, в том числе после перенаправлений.
Что значит код ответа 301? Постоянное перенаправление. Браузер и поисковые системы запоминают новый адрес. Для перехода с HTTP на HTTPS обычно используется 301.
Почему заголовки отличаются от тех, что я вижу в браузере? Сервер может отвечать по-разному в зависимости от User-Agent, cookies и других параметров запроса. Инструмент отправляет свой запрос, и результат может отличаться.
Что такое nosniff? Значение заголовка X-Content-Type-Options. Запрещает браузеру угадывать MIME-тип и заставляет использовать тот, что указан в Content-Type.
Итог
HTTP-заголовки — инструмент для просмотра ответа сервера: код статуса, Server, Content-Type, заголовки кеширования, cookies, цепочка перенаправлений и заголовки безопасности. Он помогает проверить, настроен ли HTTPS-редирект, выставлены ли HSTS и CSP, как кешируется страница и какие cookie она устанавливает. Понимая, что означает каждый заголовок и чем GET отличается от HEAD, вы сможете быстрее находить причины странного поведения сайта и вовремя замечать пропущенные настройки безопасности.