Меню

Какво е добре да знаем за HTTP/2

Какво е HTTP/2

HTTP/2 или HTTP версия 2 е втората основна версия на мрежовия протол HTTP. Той е базиран на SPDY/2 с цел значително подобряване на уеб производителността. HTTP/2 е координирана разработка на Internet Engineering Task Force (IETF).

HTTP 1.1 беше голяма стъпка напред в сравнение с HTTP 1.0, тъй като направи възможно използването на непрекъснати връзки (повече от една заявка/отговор в една и съща HTTP връзка), подобрено кеширане, нови статус кодове, подобрена поддръжка на компресия, метода OPTION за Cross Origin Resource Sharing в уеб приложения и др.

HTTP/1.1 се ползва масово повече от 15 години, но в днешно време недостатъците са вече очевидни. Съвременните уеб сайтове използват повече ресурси, което прави тяхното зареждане трудно за, тъй като HTTP/1.1 на практика позволява само една заявка във всяка отделна TCP връзка.

Поради тази причина, много TCP връзки се създават за пренасяне на паралелни заявки. Тъй като няма никакво ограничение в тази практика, в повечето случаи се използват прекалено много връзки и прекомерното им използване от браузърите. Това означава, че голям обем от една и съща информация се пренася в Интернет генерирайки ненужен трафик.

Както се досещате, наличието на твърде много заявки се отразява негативно на производителността. Това накара уеб индустрията да прибегне до практики и похвати като “image sprites”, “data: inlining”, “domain sharding” и “concatenation”. Тези “хакове” са недвусмислен знак за наличие на описаните недостатъци в HTTP/1.1 протокола.

HTTP/2 предоставя значително по-ефективно използване на мрежовия ресурс, както и намалено възприятие на латентност чрез въвеждане на компресия на Header полетата, както и позволяване на обмен на множество едновременни връзки.

Освен това, HTTP/2 позволява т.нар. “Server Push” - непоискан трансфер на данни в посока сървър - клиент. Тази спецификация е алтернатива на синтаксиса за съобщения на HTTP/1.1.


Кратко обобщение за HTTP/2:

  • Двоичен а не текстови протокол;
  • Напълно мултиплексиран, вместо последователен;
  • Използва една връзка за паралелизиране;
  • Компресира хедърите;
  • Позволява сървърите да "подават" активно отговори на заявки в клиентския кеш.

Научете още за HTTP/2 на адрес http2.github.io



Нов проект Обява за работа