Sobes.tech
Middle

Koje su razlike između protokola HTTP/1 i HTTP/2?

sobes.tech АИ

Одговор од АИ

Основне разлике између HTTP/1.1 и HTTP/2:

  • Мултиплексинг:

    • HTTP/1.1: Последовна обрада захтева по једно повезивање. За паралелно учитавање потребно је више TCP веза.
    • HTTP/2: Мултиплексинг преко једне TCP везе. Омогућава истовремено слање више захтева и добијање одговора, без блокирања један другог.
  • Сжимање заглавља (HPACK):

    • HTTP/1.1: Заглавља се преносе у несжиженом облику, што може бити излишно при великом броју захтева.
    • HTTP/2: Сжимање заглавља коришћењем HPACK алгоритма. Смањује величину преносних података.
  • Приоритизација токова:

    • HTTP/1.1: Недостаје могућност приоритизације.
    • HTTP/2: Клијент може да додели приоритете за различите токове података, утичући на редослед њихове обраде од стране сервера.
  • Серверско пуштање (Server Push):

    • HTTP/1.1: Клијент мора јасно да захтева сваки ресурс (CSS, JS, слике).
    • HTTP/2: Сервер може унапред послати ресурсе који ће бити потребни за приказ странице, пре него што их клијент затражи.
  • Двоични протокол:

    • HTTP/1.1: Текстуални протокол, релативно лако читљив.
    • HTTP/2: Двоични протокол, ефикаснији за парсирање и пренос.

Поређење табеле:

Карактеристика HTTP/1.1 HTTP/2
Мултиплексинг Не (потребне су више TCP) Да (један TCP)
Сжимање заглавља Не Да (HPACK)
Приоритизација токова Не Да
Серверско пуштање Не Да
Формат протокола Текстуални Двоични
Проблем Head-of-Line Blocking Постоји (за један TCP) Смањен захваљујући мултиплексингу

Пример мултиплексинга (концептуално):

// HTTP/1.1: Последовне захтеве
fetch('/resource1')
  .then(() => fetch('/resource2'))
  .then(() => fetch('/resource3'));

// HTTP/2: Паралелни захтеви преко једне везе
// У браузеру то се дешава аутоматски за HTTP/2
// Концептуално захтеви могу бити послати скоро истовремено