Почти всичко, което посещавате в мрежата в даден момент, използва специален протокол, известен като Hyptertext Transfer Protocol (HTTP). Още през 1999 г. сте използвали HTTP версия 1.1. Това е текущият стандарт в продължение на много години, докато Google обяви на 10 февруари 2015 г., че неговият браузър ще добавя пълна поддръжка на това, което сега е известно като HTTP / 2. Това звучи като абсолютно безсмислено за някои, но това е така, защото няма описание на това, което HTTP / 2 прави по различен начин. За да разберем това, трябва да проучим точно какво прави тази нова протоколна версия и как тя е подобна на версията на HTTP, която използваме в продължение на почти две десетилетия.

Какво постига HTTP / 2?

Когато се разработи нова протоколна версия, тя се нуждае от конкретни конкретни цели. Най-очевидната цел е обратно съвместима със своя предшественик HTTP 1.1. Без тази възможност, всеки сървър в света ще трябва да премине към HTTP / 2, за да може да преглежда своите уеб сайтове.

При запазване на съвместимостта с по-старата версия този нов протокол ще използва усъвършенствани техники като мерки срещу латентност, като страниците се зареждат по-бързо. Това е основната цел, проблемът, който HTTP / 2 възнамерява да отговори най-агресивно.

Другите подобрения включват допълнителна сигурност и съвместимост с обратните прокси сървъри.

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

Как HTTP / 2 прави Интернет по-бързо?

Да се ​​каже, че "HTTP / 2 прави всичко по-бързо" е лоша услуга за обема на работата, която действително се извършва зад кулисите, за да се постигне това. Протоколът HTTP 1.1 е продиктуван от редица проблеми, които бяха приемливи през най-ранните години на 21-ви век, но вече няма смисъл да продължаваме да живеем във времето, при което честотната лента е по-евтина и сървърите се очаква да зареждат страници с много по-бързи темпове,

Основният начин, по който HTTP / 2 възнамерява да адресира часовете за зареждане на страници, е чрез компресиране на заглавката (част от данните, изпратени от клиента ви, за да поискате сървърът да ви даде данните вътре в уеб страница, която посещавате). Това свежда до минимум времето, което компютърът ви "разтърсва ръце" с целевия сървър, като намалява количеството данни, които трябва да бъдат изпратени. Днес процесорите са достатъчно мощни, за да се справят с милиони декомпресии в кратък период от време. Има повече смисъл да се направи това сега.

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

Накрая HTTP / 2 ще направи нещо, наречено "мултиплексиране", когато изпращате заявки. В HTTP 1.1 имаше проблем: Всеки нов пакет имаше предимство пред последния. Всички те бяха обработени линейно, което доведе до проблем, наречен "блокиране на главата". По принцип изпълнението на сървъра е ограничено от факта, че ще трябва да обработи първия пакет, който идва към него, докато оставя останалите в опашка. Ако пакетът отне много време за обработка, всички останали пакети трябваше да чакат на ред за своя ред. С HTTP / 2 ще бъдат обработени множество пакети едновременно.

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

Ако имате въпроси или идеи, не забравяйте да оставите коментар с мислите си!