HTTP — текстовый протокол «запрос — ответ». Запрос состоит из метода, пути, заголовков и тела; ответ — из кода состояния, заголовков и тела. HTTPS — тот же HTTP внутри зашифрованного TLS-соединения.
GET /api/orders/42 HTTP/1.1
Host: shop.example.com
Accept: application/json
Authorization: Bearer eyJhbGciOi...
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: private, max-age=60
{"id": 42, "status": "paid"}
Что важно знать
- Методы: GET (чтение, без тела, безопасный), POST (создание, действие), PUT (замена), PATCH (частичное изменение), DELETE. Идемпотентность: GET, PUT, DELETE можно безопасно повторить, POST — нет.
- Коды: 2xx — успех, 3xx — перенаправление, 4xx — ошибка клиента (400, 401, 403, 404, 409, 429), 5xx — ошибка сервера (500, 502, 503, 504).
- Заголовки: Content-Type, Authorization, Cookie и Set-Cookie, Cache-Control, ETag, CORS-заголовки.
- Кэширование:
Cache-Control: max-age,no-cache(проверять каждый раз) противno-store(не хранить), условные запросы с ETag и ответ 304. - Версии: HTTP/1.1 — одно соединение на запрос в момент времени, HTTP/2 — мультиплексирование в одном соединении, HTTP/3 — QUIC поверх UDP без блокировки всей очереди при потере пакета.
- HTTPS: шифрование, целостность и проверка подлинности сервера по сертификату.
401 и 403 путают чаще всего: 401 — «вы не представились», 403 — «представились, но нельзя».