HTTP/2 zvyšuje výkon webových stránek a aplikací

Hypertext Transfer Protokol vznikal v dobách telefonních modemů, pagerů a mainframů. Vývoj HTTP zahájil Tim Berners-Lee v CERN v roce 1989. První dokumentovaná verze HTTP byla vydána v roce 1991 jako HTTP/0.9, v roce 1996 byl představen HTTP/1.0. V roce 1997 následoval HTTP/1.1, který se stal zlatým standardem pro webové stránky na dalších 20 let.

Problém s tímto neměnícím se protokolem vyvstal proto, že výpočetní a síťové technologie se v průběhu 20 let neustále zlepšovaly a rozvíjely. Již neprohlížíme stránky webovým prohlížečem Mosaic, který běžel na SPARCstation 1. Vysokorychlostní sítě, mobilní prohlížeče na telefonech a dokonce ani Application Delivery Controllery (ADC) v dobách vzniku HTTP neexistovaly.

Jednou z hlavních nevýhod protokolu HTTP/1.1 je omezení na zpracování jednoho požadavku na TCP spojení, což prohlížeče a vývojáři vyřešili tím, že pro každou relaci vytvořili více souběžných spojení. Vývojáři si mohou myslet, že je tím „problém vyřešen“, jenže síťovým správcům to ucpává a přetěžuje sítě. V průběhu let bylo vymyšleno mnoho různých řešení pro zřetězení, sharding domén, vkládání dat a další, které měly tyto typy problémů obejít.

Hypertext Transfer Protocol verze 2 (HTTP/2)

Když byl v roce 2015 přijat protokol HTTP/2 (RFC 7540), fungování existujících webových stránek HTTP/1.1 se nezměnilo. Zůstaly stejné metody, stavové kódy, záhlaví a URI. Co se však velmi změnilo, je přenos dat a framing mezi klientem a serverem (nebo v našem případě mezi klientem a ADC). Přestože standard HTTP/2 nevyžaduje šifrování, hlavní konsorcium webových prohlížečů Firefox, Chrome, Safari, IE a Edge se dohodlo, že budou podporovat pouze HTTP/2 přes TLS, což zavádí de facto povinné šifrování.

Cíle HTTP/2

  • Komprese dat v HTTP hlavičkách
  • HTTP/2 Server Push
  • Pipelining požadavků
  • Oprava problému blokace head-of-line v HTTP 1.x
  • Multiplexování více požadavků prostřednictvím jediného TCP spojení

Proč na výkonu webových stránek záleží?

Proč bychom měli vůbec řešit HTTP/2, když HTTP1.1 funguje dobře? Pokud je vaše webová stránka jen hromada pavučin, prachu a statického textu, pravděpodobně tento blog stejně nečtete.

Pokud však máte dynamickou webovou stránku, která obsahuje velké množství médií, a máte firmu, která chce uspět a dosáhnout většího zisku, pak je pravděpodobné, že budete chtít hostovat více obsahu a více své webové stránky vytěžovat. Můžete si tedy položit otázku: „Může HTTP/2 skutečně zvýšit provoz na mém firemním webu?“ Odpověď je pravděpodobně ano. Dovolte mi vysvětlit proč.

HTTP/2 načítá většinu webových stránek na naprosté většině zařízení rychleji než HTTP/1.1. To představuje pro váš web velkou výhodu. Všechny hlavní vyhledávače řadí rychlejší webové stránky ve výsledcích výše – díky vyššímu SEO ohodnocení. Výrazné snížení doby načítání stránky vede k tomu, že k vám vyhledávače posílají větší provoz. HTTP/2 může váš web přenést z pozice obchůdku v zastrčené ulici na výstavní plochu na hlavní třídě.

Další věc, kterou je třeba brát v potaz, je, že rychlé stránky více uspokojují zákazníky. Kissmetrics, specialista na interakci se zákazníky odhadl, že jednosekundové zpoždění při načítání stránky nebo odezvě může vést ke snížení konverzí o 7 %. Jinými slovy, pokud má váš e-shop v průměru obrat 2 mil. Kč denně, mohlo by vás zpoždění o jednu sekundu stát více než 50 milionů korun ročně.

Jak snadno nastavit ADC?

Dobrou zprávou je, že pokud jste již zákazníkem A10 Networks a používáte systém ACOS verze 4.1.4 nebo vyšší, můžete čerpat výhody z výkonu, které přišly s HTTP/2.

A10 Thunder ADC a A10 Lightning ADC podporují HTTP/2 na straně klienta. Fungování řešení se systémem ACOS podporujícím funkce HTTP/1.1 a HTTP/2 je z pohledu uživatele transparentní.

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

Podpora virtuálních portů protokolu HTTP/2 je možná pomocí příkazu support-http, který je pro HTTP nebo HTTPS k dispozici v režimu virtuálního portu. Na příkazovém řádku jednoduše nakonfigurujete virtuální port pro zpracování HTTP/2 provozu:

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 grafickém rozhraní lze podporu HTTP/2 zapnout jednoduše přes zaškrtávací políčko, jak je vidět níže.

Obr. 2: Thunder ADC – vytvoření SLB služby

Statistiky HTTP/2 můžete zobrazit pomocí následujícího příkazu na příkazovém řádku:

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

Hodně štěstí a happy Application Delivery Controlling!

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