Как устроен протокол HTTP?
DOM и браузер
HTTP — это текстовый stateless-протокол прикладного уровня по модели «запрос-ответ», работающий поверх TCP (или QUIC в HTTP/3).
Модель запрос-ответ
Клиент отправляет запрос, сервер возвращает ответ. Соединение инициирует клиент.
Структура сообщения
Запрос: стартовая строка (метод, путь, версия) → заголовки → пустая строка → тело.
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{ "name": "Ann" }Ответ: статусная строка (версия, код, текст) → заголовки → тело.
HTTP/1.1 201 Created
Content-Type: application/json
{ "id": 1 }Свойства
- Stateless — сервер не хранит состояние между запросами; состояние держат через cookie/токены.
- Методы — GET, POST, PUT, PATCH, DELETE и др.
- Статус-коды — 2xx успех, 3xx редирект, 4xx ошибка клиента, 5xx ошибка сервера.
Версии
- HTTP/1.1 — текстовый, keep-alive, одно активное сообщение на соединение.
- HTTP/2 — бинарный, мультиплексирование потоков по одному соединению.
- HTTP/3 — поверх QUIC (UDP), быстрее устанавливает соединение, меньше блокировок.
Безопасность
HTTPS = HTTP поверх TLS (шифрование + аутентификация сервера).
Коротко для собеседования
HTTP — stateless протокол «запрос-ответ» поверх TCP. Сообщение: стартовая/статусная строка, заголовки, тело. Методы и статус-коды описывают действие и результат. Версии 1.1 (текст), 2 (бинарный, мультиплексирование), 3 (QUIC). HTTPS добавляет TLS.