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.