TGViewer
Между инцидентами Между инцидентами @davydovpage · 81 subscribers
Post #39 171
Важное отличие HTTP/1.1 от HTTP/2

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

А именно я говорю про возможность отправлять несколько HTTP-запросов в рамках одного TCP соединения. Есть она в обеих версиях, но её реализации сильно отличаются друг от друга.

В HTTP/1.1 существуют keep-alive соединения, использование которых указывается в хедере «Connection: Keep-Alive». Значение keep-alive является дефолтным, но при этом вы можете указать «Connection: Close», и на каждый запрос у вас будет открываться новое соединение. Запросы и ответы на них в рамках keep-alive соединения должны идти последовательно: запрос -> ответ -> запрос -> ответ. Если на предыдущий запрос ещё не пришёл ответ, то следующий запрос в рамках текущего соединения отправить нельзя, только открывать новое. При этом теоретически в HTTP/1.1 есть возможность отправлять несколько запросов сразу, но ответы на них должны приходить в том же порядке, в котором были отправлены запросы. Это называется "pipelining", и он отключен в большинстве браузеров, так что считайте, что на практике его не существует.

В HTTP/2 все соединения по факту keep-alive, и нельзя указать, чтобы на каждый запрос открывалось новое. И самое важное: в HTTP/2 запросы и ответы в рамках соединения необязательно должны быть последовательными, как в HTTP/1.1. Это вам позволяет по сути вообще не открывать новых соединений с сервером, так как всё ваше общение будет происходить только в одном.

P.S. Keep-alive в HTTP/1 и HTTP/1.1 реализован одинаково, за исключением того, что в HTTP/1.1 он включен по дефолту.
  • 👍 3
More from @davydovpage
  1. Mar 10, 2026WSL Manager: тула для управления wsl-инстансами Нашёл полезный инструмент для тех, кто всё…
  2. Mar 8, 2026Селф-хилинг в XFS Новая серия патчей в Linux для XFS добавила возможность мониторинга здор…
  3. Mar 5, 2026Готовится новая фича дополнительных CPU планировщиков в Linux Эта фича касается sched_ext…
  4. Mar 3, 2026«Проблема» протокола NTP и что такое NTS Кто ни разу не слышал про NTP, этот протокол опис…
  5. Mar 2, 2026Из разряда «современные проблемы требуют современных решений» Команда GNOME столкнулась со…
  6. Feb 28, 2026Забавная старая задачка с собеседований Что будешь делать если случайно выполнишь "chmod 4…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →