- Головна
- Безкоштовні інструменти
- 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 й підказок браузера з адреси дата-центру. Правила для ботів, географічні правила та визначення пристрою можуть змінити відповідь. Монітор бачить сторінку так само, тож саме цей погляд і варто перевіряти.