Още по-бърз Уеб с протокола HTTP/2

Версия 2.0 (HTTP/2), на HTTP протокола за пренос на данни в уеб, е окончателно завършена и остава само да се стандартизира.

През последните години забелязваме често обновяване на версиите на уеб браузърите и уеб технологиите. Но те всички са зависими от основния движещ компонент на Уеб – HTTP протокола, който се ползва за пренос на информацията в Уеб.

И докато те непрекъснато подобряват начина си на работа, HTTP протоколът не е претърпял промени от 15 годиниПоради това новината за по-бърза и догонваща останалите компоненти на Уеб, нова версия на протокола HTTP, е доста ободряваща.

Протоколът HTTP версия 1.1 (от 1999г.) движи Уеб в продължение на години, но вече е време за нещо ново, по-добро и отговарящо на съвременния онлайн свят.

Какво е HTTP/2?

HTTP/2 е новата версия на протокола HTTP. Тази версия е базирана на протокола SPDY, разработен от Google за ускоряване на зареждането на уеб сайтовете. HTTP/2 е модерен протокол с нов начин за пренос на данните между уеб сървър и уеб браузър, което значително ускорява зареждането на уеб съдържанието. Някои от предимствата на този нов протокол са – подобрена скорост, ниско потребление на трафик, по-добро управление на връзката и други.

Основните разлики между HTTP/2 и HTTP/1.x

Протоколът вече е бинарен

Протоколът вече е бинарен (01000110…), вместо текстов (GET /index.html) и използва мултиплексиране на комуникацията клиент-сървър.

Въведени са два нови основни компонента за пренос на информацията – Frame (фрейм, в който се съдържа информацията) и Stream (поток, по който се разменят фреймове). Предаваната информация между уеб сървър и уеб браузър е разделена на части и пакетирана във фреймове преди да бъде изпратена по HTTP/2-TCP връзката. Има няколко вида фреймове – header frame, data frame и други.

HTTP/2-TCP мрежовата връзка представлява комуникационен канал във виртуалното пространство между клиент и сървър. В този комуникационен канал могат да се създават и използват едновременно огромен брой потоци от данни. Потокът е независима нишка от последователно наредени фреймове, хвърчащи в двете посоки – клиент и сървър. Фреймовете в един поток носят идентификатора на потока (уникален номер на потока). Двата края на комуникационната връзка – сървърът и клиентът, могат да взимат и пренареждат фреймове от множество различни потоци по едно и също време.

С HTTP 1.1 един уеб клиент може да изиска само един ресурс по едно и също време по HTTP/TCP връзката. Всяка от изпратените заявки се приема и обработва в последователен ред. При новия протокол HTTP/2 се използва мултиплексиране на заявките и по една TCP връзка могат да се закачат множество заявки по едно и също време. На всяка отделна заявка може да се зададе приоритет. Например някои части от уеб сайта, като HTML кода и стила (.css), могат да се заредят преди изображенията.

Използва компресиране на хедърите

За компресиране на хедърите се използва специално създаден алгоритъм HPACK. Намаленият размер на постоянно предаваните хедъри между клиент и сървър значително намалява времето за зареждане.

Server-push – изпращане на данни към клиента

Позволява на уеб сървъра самоинициативно да изпраща данни на клиента (server-push), още преди да са поискани.

Тази нова функция за уеб сървъра ускорява неимоверно зареждането на уеб съдържанието. Уеб сървърът може да предложи на уеб браузъра допълнителните елементи на уеб страницата, без да изчаква изрична заявка за това. До сега, когато уеб браузърът получаваше и разчиташе HTML кода на уеб страницата, той изпращаше допълнителни заявки към уеб сървъра, за допълнителните ресурси (например изображения и скриптове). Вместо това, уеб сървърът вече ще знае какви са допълнителните елементи на уеб страницата и ще ги предлага на уеб браузъра, веднага, без излишни запитвания и забавяне.

В HTTP/2 протокола е предвидена и опция, щадяща мобилните клиенти, които могат да откажат автоматичното получаване на информация от сървъра.

В уеб се говори за друг HTTP протокол SPDY/2, какво общо има той с протокола HTTP/2?

На първо място  – общото между двата протокола е в идеята за по-бърз и по-сигурен Уеб за всички, но най-важното е, че HTTP/2 е базиран на протокола SPDY.

SPDY е HTTP съвместим протокол, разработен от Google през 2012г. и поддържан от няколко уеб браузъра като Chrome, Opera, Firefox, Internet Explorer 11, Safari и Amazon Silk.

Много от възможностите на протокола SPDY са имплементирани в новата версия на HTTP като мултиплексиране на заявките, компресиране на хедърите, приоритизиране на потоците, подаване на информация от сървъра (server-push) и други.

От Google обявиха плановете си до началото на 2016г., да преминат към HTTP/2, като оставят поддръжката на SPDY (Google: Здравей HTTP/2, довиждане SPDY).

При Internet Explorer SPDY вече е в статус deprecated.

Разпространение и поддръжка на новия протокол HTTP/2 

Протоколът HTTP/2 вече се поддържа от по-известните уеб браузъри като Mozilla Firefox и Google Chrome. Разработчиците и на двата уеб браузъра са обявили, че поддръжката на протокола HTTP/2 ще бъде само при ползване сигурна връзка (https).

HTTP/2 се поддържа и е активиран по подразбиране в уеб браузъра Firefox от версия 34. В страницата с настройки на Firefox about:config, за опцията „network.http.spdy.enabled.http2draft“ стойността трябва да е true.

Ако ползвате Mozilla Firefox можете веднага да видите HTTP/2 протокола в действие, като се уверите, че посочена по-горе опция е активирана, и като посетите някой уеб сайт през сигурна връзка, който също поддържа HTTP/2, например Google Analytics.

За да проверите кой точно протокол се използва при връзката със сайта, отворете инструмента за разработчици във Firefox – Tools -> Web Developer -> Web Console (или клавишна комбинация Ctrl+Shift+K). Ще видите нещо подобно, ако е необходимо презаредете страницата след като отворите конзолата (Ctrl+F5):

HTTP/2 в уеб браузъра Mozilla Firefox
HTTP/2 в уеб браузъра Mozilla Firefox.

Докато протокола HTTP/2 вече се поддържа от по-известните уеб браузъри, при някои сървърни приложения все още се очаква да се извърши имплементация. За момента, ако искате да тествате новата версия на HTTP, може да погледнете вече готовите имплементации node-http2 (Node.js), http-2 (Ruby) и други.

За сега оставаме в очакване и при уеб сървъра Apache официално да включат поддръжка на новия протокол HTTP/2.

Интересно: През 2012г., по същото време, по което протоколът SPDY на Google изглежда единственото логично предложение за версия 2 на HTTP, от Microsoft излизат с конкуриращ протокол – HTTP S&M (Speed+Mobility).

Тествайте и сами вижте разликата между HTTP/2 и HTTP/1 при зареждане на изображения (при HTTP/2 се вижда явно паралелното зареждане на ресурсите).

Абонирайте се за СуперБлога, за да научавате първи най-важното и полезното от света на уеб, касаещо Вашия сайт и дигитално развитие.

Мадлена Методиева
Мадлена Методиева
Меган е част от СуперМаркетинг екипа. Мисията ѝ е старателно да попълва е-библиотеката на СуперХостинг.БГ с полезни и помощни статии.
0 0 votes
.
Абониране
Уведоми ме при
guest

8 Коментара
Inline Feedbacks
View all comments

Black Friday: WooCommerce магазинът ми продава повече от магазина ти!

0
Задаваме 7 въпроса, през които трябва да преминете, за да имате изряден WooCommerce магазин. Типично в наш стил, не Ви спестяваме и отговорите.
Искам сайт, но не знам откъде да започна

Искам сайт, но не знам откъде да започна [Аудио]

2
Решихме да Ви споделим накратко стъпките, които трябва да извървите, за да изградите своето онлайн присъствие.
11 мита за онлайн присъствието

11 мита за онлайн присъствието [Аудио]

2
Темата е: онлайн присъствие - от изграждането на сайт до неговото развитие и следователно развитието на Вашия бизнес. Разберете кой е първият мит за разбиване!