Kategórie
Novinky Technológie Zákulisie

Nasadili sme rýchlejšie a bezpečnejšie HTTP/2

Doba čítania: 4 min.

Super správa pre všetkých zákazníkov. Väčšina stránok na zdieľanom hostingu s SSL certifikátom je už niekoľko dní dostupná cez nový protokol HTTP/2. Novinka sľubuje väčšiu rýchlosť a bezpečnosť.

Len máločo dokáže vystihnúť pojem dynamika tak dokonale ako internet. Virtuálne miesto, kde sa trendy menia zo dňa na deň na takmer všetkých úrovniach. Web je stelesnením superrýchlej evolúcie. Bohužiaľ, jedna vec až dodnes dlhé roky zaostávala. Paradoxne bola jej absolútnym základom. Protokol HTTP.

HTTP (Hypertext Transfer Protocol) patrí medzi aplikačné protokoly. Komunikuje podľa modelu klient – server, čiže v jednoduchosti vysvetlené, internetový prehliadač si od webservera vypýta obsah stránky a tá mu je zaslaná. Implementácia HTTP vo verzii 1.1 je z roku 1999, čo sa dá z dnešného pohľadu pokladať za pravek. Dnes sú weby komplikovanejšie, poskladané z množstva statického obsahu ako CSS, obrázkov a JavaScriptov. Nielen týmto výzvam má čeliť nová verzia HTTP/2, ktorá je štandardom už od mája minulého roka.

História

Za ideu a realizáciu HTTP/2 sa dá pripísať nemalá zásluha Googlu. Táto spoločnosť už v roku 2012 predstavila svoj vlastný otvorený protokol SPDY, ktorý mal priniesť nižšiu latenciu a vyššiu bezpečnosť. Oba body sa mu podarilo splniť pomocou kompresie, multiplexingu, prioritizácii a vyžadovaním TLS.

SPDY mal podporu na strane webových serverov ako Nginx a Apache (mod_spdy), ale aj na strane prehliadačov. Google Chrome asi nie je prekvapením, no pozná ho aj Opera, Firefox, Safari či Internet Explorer. Keďže je už HTTP/2 schválený ako štandard, Google tento rok SPDY ako projekt ukončí – už ho nebude treba.
Za HTTP/2 stojí pracovná skupina HTTP z The Internet Engineering Task Force (IETF). Keď bola podaná výzva na predkladanie návrhov na nový protokol, tak SPDY bol viac-menej jasnou voľbou a ľudia z Googlu priamo pracovali na HTTP/2. Ako už bolo spomenuté, tak v máji 2015 uzrelo svetlo sveta RFC 7540 a RFC 7541, ktoré popisujú kompresiu hlavičiek HPACK.

Rozdiel oproti HTTP/1.1

HTTP/2 nie je úplne novou implementáciou protokolu. Je len vylepšením a rozšírením, aby jeho sémantika, metódy a statusové kódy zostali zachované. Existujú však zásadné veci, v ktorých sa odlišuje:

  • je binárny, nie textový, čo by malo znížiť chybovosť pri analýze správ (parsovaní)
  • používa kompresiu hlavičiek pre zníženie objemu dát a latencie, rádovo v milisekundách. SPDY pôvodne používal GZIP pre ich kompresiu, nakoniec kvôli bezpečnosti padla voľba na vlastnú implementáciu v podobe HPACK
  • multiplexing, čiže súčasné vybavovanie viacerých požiadaviek, dokonca v rôznom poradí, minimalizácia výpadkov alebo prerušení komunikácie
  • server push umožňuje posielať viacero požiadaviek súčasne, napríklad CSS by malo prísť rovno s HTML a nie až v ďalšej požiadavke

Šifrované spojenie nie je podmienkou, ale…

Aj keď samotná špecifikácia nevyžaduje, aby bola komunikácia šifrovaná (čo bolo dôvodom mnohých diskusií), tak “výrobcovia” prehliadačov ju vyžadovať budú cez TLS. Áno, certifikáty nie sú najlacnejšie, a práve preto vznikla iniciatíva Let’s Encrypt. Ide o aktivitu niekoľkých firiem, ktoré vydávajú SSL certifikáty zdarma. Viac o nej a o tom, ako je implementovaná v rámci našich hostingových služieb, nabudúce.

http-vs-http2-multiplexing-serving-all-together

Čo môžete očakávať od HTTP/2

Prechod na protokol HTTP/2 bude pre vás takmer nepostrehnuteľný. Prehliadač, ktorý ho podporuje máte už pravdepodobne nainštalovaný, no jedna drobnosť sa predsa len zmení – webové stránky by sa vám mali načítať rýchlejšie a s menším objemom prenesených dát.

Situácia sa však mení pre vývojárov, ktorí komunikujú cez nový protokol. Tým môže pomocť prehľad jeho implementácie pre rôzne jazyky a nástrojov pre jeho testovanie, ladenie a používanie.

Zmeny najviac postihnú hlavne hostingové spoločnosti a prevádzkovateľov vlastných webových serverov. Tam treba updatovať, prípadne si počkať na stabilnú implementáciu.

My sme protokol SPDY podporovali vyše roka. V týchto dňoch sme prešli na loadbalanceroch na HTTP/2. Ak pristúpite k vašim stránkam cez https://, pravdepodobne pôjdete už cez protokol HTTP/2.

Bude HTTP/3?

Je jasné, že HTTP/2 asi nevyrieši všetky problémy. Na základe toho, ako sa budú vyvíjať ďalšie technológie, budú sa postupne objavovať nové a nové požiadavky. Kedy teda očakávať ďalší upgrade? To je ťažko predvídateľné a veľmi bude záležať od toho, ako rýchlo sa HTTP/2 udomácni a ako bude prebiehať väčšina komunikácie cez tento nový protokol.
[mc4wp_form]

Autor: Fero Volár

Nezávislý profesionál v oblasti biznisu, produktov a cloudu. Okrem iného rád bloguje, cestuje, prednáša, fotí, miluje hudbu a dobré jedlo.

5 odpovedí na “Nasadili sme rýchlejšie a bezpečnejšie HTTP/2”

Nejaky dobry hint ako ho robehat u vas na VPS? Pouzivam Apache 2.4.18 MPM worker, mal by mat podporu http/2, skusal som ho nejako povolit, ale nepodarilo sa mi, nieco dobre a overene ako postupovat nemate?

Treba mať rozbehané štandardné SSL, enablovať mod_http2 v Apache a pridať do /etc/apache2/apache2.conf alebo konfiguracie daného VirtualHost-u riadok „Protocols h2 http/1.1“ (bez úvodzoviek). Následne Apache treba reštartnúť.

Vdaka, uz som zistil, ja som daval Protocols h2c http/1.1 a to nie je urcene pre ssl, tak preto mi to nefungovalo, ale uz to ide, len som si vsimol, ze ked si pozriem htop, tak tam mam skoro 3000 thr, taskov je +- rovnako ako ked http/2 nie je aktivne na webe, vtedy mam okolo 800 thr a taskov je asi rovnako, tiez obsadenie ram stuplo asi o 1GB, je to normalne spravanie?

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *