HTTP (Hypertext Transfer Protocol) — прикладний протокол, за яким браузери, застосунки й сервери запитують і передають вебсторінки, файли та дані API.
Як працює HTTP
HTTP працює за схемою «запит — відповідь». Клієнт надсилає запит із методом (GET, POST, PUT, DELETE тощо), URL і заголовками; сервер відповідає кодом стану (200 OK, 301 — перенаправлення, 404 — не знайдено, 500 — помилка сервера), заголовками й тілом. HTTP не зберігає стан: кожен запит незалежний, тому для входу в обліковий запис використовують cookie та токени.
- HTTP/1.1 — текстовий, досі широко використовується (RFC 9112);
- HTTP/2 — бінарний, багато запитів в одному з’єднанні (RFC 9113);
- HTTP/3 — працює поверх QUIC на UDP для швидших з’єднань (RFC 9114).
HTTPS — це HTTP усередині зашифрованого TLS-з’єднання, підтвердженого сертифікатом центру сертифікації.
Чим HTTP важливий для безпеки
Звичайний HTTP передається відкрито, тож будь-хто в тій самій мережі — наприклад, у публічному Wi-Fi — може прочитати чи змінити трафік. Тому браузери позначають HTTP-сайти як «Не захищено», а великі сайти працюють лише через HTTPS. Сам HTTP теж є поверхнею атаки:
- HTTP request smuggling і розсинхронізація між проксі та серверами;
- впровадження заголовків, відкриті редиректи й крадіжка cookie;
- DoS-прийоми на кшталт атаки HTTP/2 Rapid Reset (2023), що дала змогу провести рекордні DDoS-атаки.
Рекомендації
- Віддавайте всі сайти через HTTPS і ввімкніть HSTS, щоб браузер ніколи не повертався до HTTP.
- Налаштуйте заголовки безпеки: Content-Security-Policy, X-Content-Type-Options, прапорці Secure та HttpOnly для cookie.
- Вчасно оновлюйте вебсервери, проксі та CDN.