Hypertext Transfer Protokol vznikal v časoch telefónnych modemov, pagerov a mainframov. Vývoj HTTP začal Tim Berners-Lee v CERN v roku 1989. Prvá dokumentovaná verzia HTTP bola vydaná v roku 1991 ako HTTP/0.9, v roku 1996 bol predstavený HTTP/1.0. V roku 1997 nasledoval HTTP/1.1, ktorý sa stal zlatým štandardom pre webové stránky na ďalších 20 rokov.

Problém s týmto nemeniacim sa protokolom vznikol preto, že výpočtové a sieťové technológie sa v priebehu 20 rokov neustále zlepšovali a rozvíjali. Už neprehliadame stránky webovým prehliadačom Mosaic, ktorý bežal na SPARCstation 1. Vysokorýchlostné siete, mobilné prehliadače na telefónoch a dokonca ani Application Delivery Controllery (ADC) v časoch vzniku HTTP neexistovali.

Jednou z hlavných nevýhod protokolu HTTP/1.1 je obmedzenie na spracovanie jednej požiadavky na TCP spojenie, čo prehliadače a vývojári vyriešili tým, že pre každú reláciu vytvorili viac súbežných spojení. Vývojári si môžu myslieť, že je tým „problém vyriešený“, lenže sieťovým správcom to upcháva a preťažuje siete. V priebehu rokov bolo vymyslené veľa rôznych riešení pre zreťazenie, sharding domén, vkladanie dát a ďalšie, ktoré mali tieto typy problémov obísť.

Hypertext Transfer Protocol verzie 2 (HTTP/2)

Keď bol v roku 2015 prijatý protokol HTTP/2 (RFC 7540), fungovanie existujúcich webových stránok HTTP/1.1 sa nezmenilo. Zostali rovnaké metódy, stavové kódy, hlavičky a URI. Čo sa však veľmi zmenilo, je prenos dát a framing medzi klientom a serverom (alebo v našom prípade medzi klientom a ADC). Hoci štandard HTTP/2 nevyžaduje šifrovanie, hlavné konzorcium webových prehliadačov Firefox, Chrome, Safari, IE a Edge sa dohodlo, že budú podporovať len HTTP/2 cez TLS, čo zavádza de facto povinné šifrovanie.

Ciele HTTP/2

  • Kompresia dát v HTTP hlavičkách
  • HTTP / 2 Server Push
  • Pipelining požiadaviek
  • Oprava problému blokácie head-of-line v HTTP 1.x
  • Multiplexing viac požiadaviek prostredníctvom jediného TCP spojenia

Prečo záleží na výkonu webových stránok

Prečo by sme mali vôbec riešiť HTTP/2, keď HTTP1.1 funguje dobre? Ak je vaša webová stránka len hromada pavučín, prachu a statického textu, pravdepodobne tento blog aj tak nečítate.

Ak však máte dynamickú webovú stránku, ktorá obsahuje veľké množstvo médií, a máte firmu, ktorá chce uspieť a dosiahnuť väčší zisk, potom je pravdepodobné, že budete chcieť hosťovať viac obsahu a viac svoje webové stránky vyťažovať. Môžete si teda položiť otázku: „Môže HTTP/2 skutočne zvýšiť prevádzku na mojom firemnom webe?“ Odpoveď je pravdepodobne áno. Dovoľte mi vysvetliť prečo.

HTTP/2 načítava väčšinu webových stránok na naprostej väčšine zariadení rýchlejšie ako HTTP/1.1. To predstavuje pre váš web veľkú výhodu. Všetky hlavné vyhľadávače radí rýchlejšie webové stránky vo výsledkoch vyššie – vďaka vyššiemu SEO ohodnoteniu. Výrazné zníženie doby načítania stránky vedie k tomu, že k vám vyhľadávače posielajú väčšiu prevádzku. HTTP/2 môže váš web preniesť z pozície obchodíku v zastrčenej ulici na výstavnú plochu na hlavnej triede.

Ďalšia vec, ktorú treba brať do úvahy, je, že rýchle stránky viac uspokojujú zákazníkov. KISSmetrics, špecialista na interakciu so zákazníkmi odhadol, že jednosekundové oneskorenie pri načítaní stránky alebo odozve môže viesť k zníženiu konverzií o 7 %. Inými slovami, ak má váš e-shop v priemere obrat 10 000 Eur denne, mohlo by vás oneskorenie o jednu sekundu stáť viac ako 2,5 miliónov Eur ročne.

Ako ľahko nastaviť ADC

Dobrou správou je, že ak ste už zákazníkom A10 Networks a používate systém ACOS verzie 4.1.4 alebo vyššie, môžete čerpať výhody z výkonu, ktoré prišli s HTTP/2.

A10 Thunder ADC a A10 Lightning ADC podporujú HTTP/2 na strane klienta. Fungovanie riešenia so systémom ACOS podporujúcim funkcie HTTP/1.1 a HTTP/2 je z pohľadu užívateľa transparentný.

Obr. 1: Zjednodušení webového provozu s použitím HTTP/2

Podpora virtuálnych portov protokolu HTTP/2 je možná pomocou príkazu support-http, ktorý je pre HTTP alebo HTTPS k dispozícii v režime virtuálneho portu. Na príkazovom riadku jednoducho nakonfigurujete virtuálny port pre spracovanie HTTP/2 prevádzky:

ACOS(config)# slb virtual-server vip1 10.10.10.99
ACOS(config-slb vserver)# port 80 http
ACOS(config-slb vserver-vport)# support-http2

 V grafickom rozhraniu možno podporu HTTP/2 zapnúť jednoducho cez zaškrtávacie políčko, ako je vidieť nižšie.

 Obr. 2: Thunder ADC – vytvorenie SLB služby

Štatistiky HTTP/2 môžete zobraziť pomocou nasledujúceho príkazu na príkazovom riadku:

ACOS(config)# show slb http2
ACOS(config)# show slb session http2

Veľa šťastia a happy Application Delivery Controlling!

Autor: Jeffrey Hughes, A10 Networks
Preklad a úpravy: Jan Mazal,
VPGC
Zdroj:
A10 Networks – HTTP/2 Increases Web Page Performance