- Главная
- Бесплатные инструменты
- HTTP-заголовки
Проверка HTTP-заголовков
Проверьте код ответа, время ответа, IP-адрес и заголовки ответа любого адреса: безопасность, кеширование, редиректы. Бесплатно, без регистрации.
Отслеживайте код ответа, а не только заголовкиHTTP-монитор Tenium записывает код ответа, время и редиректы при каждой проверке (каждые 5 мин на Free, до 30 с на Pro). Pro также отправляет собственные заголовки, чтобы WAF пропускал проверки.
Начать бесплатноЧто вы получаете в ответ
Инструмент обращается к сервису проверок Tenium, который делает GET-запрос с user agent Tenium-Monitor/1.0, идёт по редиректам (не более пяти) и возвращает итоговый ответ: код, общее время, IP-адрес, число дней до окончания сертификата и заголовки ответа (до 40, каждый сокращён до 300 символов). Отсюда два следствия. Заголовки относятся к последнему ответу, поэтому HSTS или кеш-заголовки промежуточного редиректа с http на https вы не увидите. А поскольку запрос приходит из дата-центра как от бота, CDN может отдать другие заголовки, чем отдаёт браузеру.
Если заголовков в результате нет, инструмент подсказывает команду curl, которая выводит их на вашем компьютере: curl -sI https://example.com. HEAD быстрее, но некоторые фреймворки обрабатывают HEAD и GET по-разному, поэтому для GET с заголовками используйте curl -s -D - -o /dev/null.
Кеш-заголовки: читаем как историю
Cache-Control: public, max-age=31536000, immutable подходит для ресурсов с отпечатком в имени вроде app.3f9a1c.js: имя меняется вместе с содержимым. Для HTML это обычно неверно; безопаснее no-cache (хранить, но каждый раз проверять актуальность) или короткий max-age от 60 до 300 секунд. no-store не пускает ответ ни в один кеш и нужен страницам с персональными данными. s-maxage отдельно от браузеров настраивает общие кеши, например CDN.
Age показывает, сколько секунд живёт кешированная копия. CF-Cache-Status: HIT, X-Cache: Hit from cloudfront и растущий Age означают, что ответил CDN; MISS или DYNAMIC — что работал ваш origin-сервер. Заголовок Vary: Cookie на публичной странице незаметно сделает большинство запросов некешируемыми.
Заголовки безопасности и разумные значения
Значения ниже — типовая отправная точка, а не полная политика:
- Strict-Transport-Security: max-age=31536000; includeSubDomains. Добавляйте preload только тогда, когда все поддомены действительно работают на https, потому что исключение из списка preload занимает месяцы.
- Content-Security-Policy: начните с режима Content-Security-Policy-Report-Only и прочитайте отчёты, прежде чем включать политику. Политика default-src 'self' в первый же день сломает встроенные скрипты и сторонние теги.
- X-Content-Type-Options: nosniff, чтобы браузер не угадывал тип скрипта или таблицы стилей.
- Referrer-Policy: strict-origin-when-cross-origin — значение по умолчанию в современных браузерах, но явная настройка убирает двусмысленность.
- Защита от встраивания во фреймы: frame-ancestors в CSP имеет приоритет над X-Frame-Options, хотя X-Frame-Options: SAMEORIGIN для старых клиентов никому не вредит.
- Set-Cookie: сессионные cookie должны иметь как минимум Secure; HttpOnly; SameSite=Lax.
Заголовки, которые помогают искать проблемы
Location показывает, куда ведёт редирект, а код — насколько он постоянный: 301 и 308 браузеры кешируют, 302 и 307 — нет. Retry-After сопровождает 503 или 429. WWW-Authenticate в ответе 401 называет ожидаемую схему. Server и X-Powered-By раскрывают версии программного обеспечения, так что их лучше убрать. cf-ray, x-amz-cf-id и x-served-by называют CDN, обработавший запрос, — именно это просит служба поддержки.
От одного взгляда к постоянной проверке
Заголовки «плывут», как только кто-то меняет правило CDN или плагин. Монитор на странице записывает код и время на каждом интервале, а проверкой ключевого слова, которая есть на каждом тарифе, его можно дополнить, чтобы убедиться, что отдаётся настоящее содержимое. Если WAF блокирует проверяющего, собственные заголовки запроса на Pro позволяют отправить секретное значение, которое узнает ваш файрвол. Смотрите мониторинг сайта и руководство про белый список в Cloudflare.
Вопросы об инструменте
Какие заголовки должен отправлять каждый сайт?
Как минимум Strict-Transport-Security, X-Content-Type-Options: nosniff, Referrer-Policy и Content-Security-Policy (сначала в режиме report-only). Cache-Control важен для скорости, а cookie нуждаются в Secure и HttpOnly.
Почему в результате нет заголовков ответа?
Сервис проверок может возвращать их не для каждого запроса, либо запрос завершился ошибкой до получения ответа. Тогда выполните curl -sI для этого адреса на своём компьютере.
Как понять, что страницу отдаёт CDN?
Ищите cf-ray, x-cache, x-served-by или via. Числовой заголовок Age больше нуля означает, что отдана кешированная копия. Если в каждом запросе MISS, проверьте Cache-Control и Vary.
Идёт ли инструмент по редиректам?
Да, до пяти. Показаны заголовки итогового ответа. Чтобы увидеть каждый шаг, выполните curl -sIL и прочитайте строки Location.
Почему CDN отдаёт мне другой ответ, чем браузеру?
Запрос — это простой GET без cookie и подсказок браузера с адреса дата-центра. Правила для ботов, географические правила и определение устройства могут изменить ответ. Монитор видит страницу так же, поэтому именно этот взгляд и стоит проверять.