Мережа/HTTP

HTTP Headers Parser

Розібрати сирі HTTP-заголовки (з curl -I, DevTools, raw response) на список полів із поясненням і перевіркою заголовків безпеки.

Сирі HTTP-заголовки з curl -I чи вкладки Network у DevTools виглядають як суцільний блок тексту. Інструмент розбирає його на окремі поля, пояснює призначення кожного заголовка й перевіряє наявність типових заголовків безпеки.

Як користуватися

Типові сценарії

Що варто памʼятати

Порядок заголовків здебільшого не має значення для HTTP, окрім рідкісних випадків із повторюваними заголовками того самого типу (наприклад, кілька Set-Cookie).

Відсутність заголовка безпеки не завжди помилка — деякі з них (наприклад, HSTS) мають сенс лише для HTTPS-сайтів чи конкретних сценаріїв використання.

Стаття про цей інструмент: HTTP-заголовки: що приховано в кожному запиті й відповіді

Часті запитання

Чим відрізняються заголовки запиту від заголовків відповіді?

Заголовки запиту надсилає клієнт, щоб описати, що він запитує (наприклад, Accept чи Authorization), а заголовки відповіді надсилає сервер, щоб описати, що він повертає (наприклад, Content-Type чи Cache-Control).

Чому деякі назви заголовків з'являються з різним регістром?

Назви HTTP-заголовків нечутливі до регістру за специфікацією, тому Content-Type і content-type еквівалентні — різні сервери й інструменти просто мають різні конвенції для їх відображення.

Чи надсилаються заголовки кудись під час аналізу тут?

Ні. Весь аналіз відбувається повністю у вашому браузері — нічого не завантажується на сервер.

Чому в одній відповіді може бути кілька заголовків Set-Cookie?

Кожен заголовок Set-Cookie встановлює рівно одну cookie, тож якщо сервер хоче встановити кілька, він додає кілька окремих рядків — на відміну від більшості заголовків, значення яких можна безпечно об'єднати комою.

Чи важливий порядок заголовків у HTTP-запиті чи відповіді?

Здебільшого ні — HTTP не гарантує й не вимагає конкретного порядку заголовків, за винятком рідкісних випадків, коли повторювані заголовки одного типу мають значення саме в порядку появи (наприклад, кілька Set-Cookie).

Статті: Мережа/HTTP

Розбір URL: з яких частин складається веб-адреса

Чому в URL є частина після символу # , яку сервер навіть не отримує.

Query String проти JSON: чому GET-параметри такі обмежені

Чому передати масив або вкладений об'єкт через query string URL не так просто, як через JSON.

User-Agent: чому цей рядок такий заплутаний

Чому Chrome, Safari та Edge всі містять у User-Agent слова "Mozilla" і "Safari" одночасно.

Basic Authentication: як найпростіший спосіб автентифікації працює в HTTP

Чому Basic Auth обов'язково потребує HTTPS, адже Base64 — це не шифрування, а лише кодування.

Cookies: як невеликий шматок тексту зберігає стан сесії

Чому атрибут HttpOnly захищає cookie від крадіжки через шкідливий JavaScript-код.

CORS: чому браузер блокує "звичайні" запити до іншого домену

Чому помилка CORS виникає в браузері, а не на боці сервера, і хто насправді блокує запит.

Заголовки email: як простежити шлях листа від відправника до вас

Чому заголовки Received потрібно читати знизу вгору, щоб простежити шлях листа.