Сравнение версий HTTP
| Характеристика | HTTP/0.9 | HTTP/1.0 | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|---|---|
| Год | 1991 | 1996 | 1997 | 2015 | 2022 |
| RFC | — | RFC 1945 | RFC 9112 | RFC 9113 | RFC 9114 |
| Транспорт | TCP | TCP | TCP | TCP | QUIC (UDP) |
| Формат | Текст | Текст | Текст | Бинарный | Бинарный |
| Методы | Только GET | GET, POST, HEAD | GET, POST, HEAD, PUT, DELETE, OPTIONS (+ PATCH — RFC 5789) | Те же | Те же |
| Заголовки | ❌ | ✅ | ✅ | ✅ (только lowercase) | ✅ |
| Сжатие заголовков | ❌ | ❌ | ❌ | ✅ HPACK | ✅ QPACK |
| Коды состояния | ❌ | ✅ | ✅ | ✅ | ✅ |
| Keep-Alive | ❌ | ❌ (1 запрос = 1 соединение) | ✅ по умолчанию | ✅ | ✅ |
| Мультиплексирование | ❌ | ❌ | ❌ | ✅ | ✅ (независимые потоки) |
| HOL-blocking | Да | Да | Да (уровень HTTP) | Частично (уровень TCP) | ❌ устранён |
| Server Push | ❌ | ❌ | ❌ | ✅ | ✅ |
| Приоритизация запросов | ❌ | ❌ | ❌ | ✅ | ✅ |
| TLS/HTTPS | ❌ | Опционально | Опционально | Де-факто обязателен | Встроен в QUIC |
| Миграция соединения | ❌ | ❌ | ❌ | ❌ | ✅ (Connection ID) |
| 0-RTT рукопожатие | ❌ | ❌ | ❌ | ❌ | ✅ |
| Виртуальный хостинг | ❌ | ❌ | ✅ (заголовок Host) | ✅ | ✅ |
| Chunked transfer | ❌ | ❌ | ✅ | ✅ | ✅ |
| Кэширование | ❌ | Базовое | ✅ Cache-Control, ETag | ✅ | ✅ |