Проверяет понимание ключевых различий между протоколами HTTP/1.1 и HTTP/2, что важно для оценки знаний сетевых основ и оптимизации веб-приложений.
HTTP/1.1 был стандартом десятилетиями, но его архитектура создает узкие места при загрузке современных веб-страниц. HTTP/2, выпущенный в 2015 году, решает эти проблемы, сохраняя совместимость с семантикой HTTP (методы, заголовки, статусы). Основные изменения касаются транспорта данных, а не логики приложения.
Хотя протоколы работают на уровне сети, вот пример, как HTTP/2 улучшает загрузку ресурсов по сравнению с HTTP/1.1:
// HTTP/1.1: последовательные запросы (упрощенно)
GET /style.css
GET /script.js
GET /image.png
// HTTP/2: параллельные запросы по одному соединению
// (мультиплексирование)
Stream 1: GET /style.css
Stream 2: GET /script.js
Stream 3: GET /image.pngHTTP/2 используется большинством современных серверов (Nginx, Apache) и браузеров. Для разработчика важно знать, что при использовании HTTP/2 не нужно объединять файлы в спрайты или инлайнить CSS/JS, так как это было оптимизацией для HTTP/1.1. Вместо этого можно разбивать код на мелкие модули, что улучшает кэширование.
HTTP/2 — это эволюция протокола, которая значительно повышает производительность веб-приложений за счет параллелизма и сжатия. Его стоит применять на всех новых проектах, так как он поддерживается всеми современными браузерами и не требует изменений в коде приложения, только настройки сервера.