Ответ
Классический HTTP/1.x — это текстовый (текстоориентированный) протокол.
Признаки текстового протокола:
- Запросы и ответы состоят из читаемых ASCII/UTF-8 строк.
- Структура определяется символами перевода строк (
rn) и разделителями (двойнойrnмежду заголовками и телом). - Методы (GET, POST), коды статуса (200 OK), заголовки — все передаются в текстовом виде.
Пример HTTP/1.1 запроса:
GET /api/data HTTP/1.1
Host: example.com
User-Agent: MyClient/1.0
Accept: application/json
Эволюция в сторону бинарных форматов:
- HTTP/2 сохраняет текстовую семантику (те же методы, заголовки), но передаёт данные в бинарных фреймах для повышения эффективности (мультиплексирование, сжатие заголовков HPACK).
- HTTP/3 (на основе QUIC) также использует бинарные фреймы.
Тело запроса/ответа (body) может содержать любые данные, как текстовые (JSON, XML), так и бинарные (изображения, файлы).
Вывод: HTTP/1.x — текстовый. HTTP/2 и HTTP/3 используют бинарную передачу для оптимизации, но логически остаются текстовыми протоколами.