https://blog.superhosting.bg/new-http2.html

Натиснете ENTER, за да видите резултатите или ESC за изход.

Блог на SuperHosting.BG

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

2016-10-28
Новини и събития
HTTP, HTTP/2, Speed+Mobility, SPDY, нов HTTP, HTTP/2-TCP, GET /index.html,

Версия 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), още преди да са поискани.

Тази нова функция за уеб сървъра ускорява неимоверно зареждането на уеб съдържанието. Уеб сървърът може да предложи на уеб браузъра допълнителните елементи на уеб страницата, без да изчаква изрична заявка за това. До сега, когато уеб браузърът получаваше и разчиташе 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 вече се поддържа от по-известните уеб браузъри, при някои сървърни приложения все още се очаква да се извърши имплементация. За момента, ако искате да тествате новата версия на 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 се вижда явно паралелното зареждане на ресурсите).

Специалист Техническа Поддръжка

Меган е нашият support гуру – може да отговори на всеки технически въпрос. Знае всичко за новите технологии. СуперСилата на Меган е, че може да обясни и най-сложните технологии на достъпен за всеки език.

500px270px
SuperHosting.BG

Препоръчани статии

Оставете коментар

3 Коментара към "Още по-бърз Уеб с протокола HTTP/2"

Уведоми ме при
avatar

Бисер Борисов
Гост
30 март 2016 16:40

Поддържа ли се за сайтовете хоствани при вас?

СуперХостинг.БГ
SH
30 март 2016 17:15

Здравейте,

Ще обявим поддръжката на HTTP/2, когато е наличен на всички наши сървъри на споделен хостинг и Managed VPS. Към момента работим по това, като искаме да съобразим всички аспекти, които засяга промяната.

Поздрави,
Цвет

Бисер Борисов
Гост
30 март 2016 17:17

Много благодаря за отговора!
Бисер

wpDiscuz