В чем отличия http 1.1 и http 2 ?

Спросят с вероятностью 17%



HTTP/1.1 и HTTP/2 — это версии протокола HTTP, каждая из которых имеет свои особенности и улучшения по сравнению с предыдущими версиями. Важные различия между этими версиями включают следующие аспекты:



1⃣Мультиплексирование



HTTP/1.1:

Поддерживает одновременное открытие нескольких TCP соединений (обычно 6-8), что позволяет загружать несколько ресурсов параллельно. Однако каждое соединение может обрабатывать только один запрос за раз, что приводит к задержкам из-за блокировки очереди (head-of-line blocking).



HTTP/2:

Вводит мультиплексирование, позволяющее отправлять множество запросов и ответов асинхронно через одно единственное TCP соединение. Это значительно уменьшает задержки и улучшает производительность при загрузке страниц с большим количеством ресурсов.



2⃣Бинарный протокол



HTTP/1.1:

Является текстовым протоколом, что означает, что запросы и ответы форматируются в виде читаемого текста.



HTTP/2:

Бинарный протокол, который делает передачу данных более эффективной и менее подверженной ошибкам в синтаксическом анализе. Бинарный формат упрощает реализацию парсеров и уменьшает размер передаваемых данных.



3⃣Сжатие заголовков



HTTP/1.1:

Заголовки передаются без сжатия, что может привести к значительному объему передаваемых данных, особенно если одни и те же заголовки отправляются повторно с каждым запросом.



HTTP/2:

Использует механизм сжатия заголовков HPACK, который уменьшает избыточность заголовков, сжимая их перед отправкой. Это особенно эффективно для повторяющихся запросов к одним и тем же серверам.



4⃣Приоритизация запросов



HTTP/1.1:

Не поддерживает приоритизацию запросов, из-за чего браузеры должны использовать эвристики для управления приоритетами ресурсов.



HTTP/2:

Поддерживает явную приоритизацию запросов, позволяя клиенту указывать приоритет обработки ресурсов, что делает загрузку страниц более эффективной.



5⃣Server Push



HTTP/1.1:

Не имеет возможности "server push", при котором сервер инициативно отправляет ресурсы клиенту, даже если они не были явно запрошены.



HTTP/2:

Включает функцию "server push", позволяя серверам отправлять ресурсы клиенту в предвидении будущих запросов, что может ускорить загрузку веб-страниц.



HTTP/2 представляет собой значительное улучшение по сравнению с HTTP/1.1, предлагая улучшенную производительность, эффективность и возможности. Эти улучшения направлены на ускорение загрузки веб-страниц и оптимизацию общения между клиентами и серверами.



👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент



🔐 База собесов | 🔐 База тестовых