Od SPDY do HTTP/2
Pomiędzy standardami SPDY a HTTP/2 nie ma wielu różnic. Oba korzystają z tzw. multipleksowania, czyli odbierania i wysyłania wielu informacji w tym samym czasie, przy czym SPDY jest w stanie w obsługiwać w ten sposób zasoby pochodzące z jednego hosta (serwera), HTTP/2 umożliwia zaś jednoczesny multipleksing z wielu hostów – co ma zasadnicze znaczenie przy przesyłaniu m.in. reklam z wielu źródeł.
Podobnie jak SPDY, HTTP/2 zwiększa szybkość wczytywania informacji głównie poprzez utworzenie jednego stałego połączenia pomiędzy przeglądarką a serwerem. Ponadto wszystkie dane przesyłane są w formacie binarnym, a nie tak, jak ma to miejsce obecnie, kiedy część przesyłana jest w formacie tekstowym. Binarny przesył danych oznacza, że komputer i serwer nie muszą tracić czasu na konwersje pomiędzy formatami danych.
Innymi istotnymi cechami protokołu HTTP/2 są również wykorzystanie priorytetów (ważniejsze dane przesyłane są jako pierwsze) oraz, podobnie jak w SPDY, obowiązkowa kompresja. Projektanci protokołu skorzystali też z technologii „Push” – serwer przewiduje, o jakie dane może za chwilę poprosić przeglądarka, i wysyła je przed czasem.
Wdrożenie
Wszystko wskazuje na to, że przejście na protokół HTTP/2 odbędzie się w sposób płynny i zupełnie niezauważalny dla użytkownika. Już w tej chwili wiele serwerów WWW i przeglądarek internetowych ma możliwość pracy z wykorzystaniem protokołu HTTP/2. Na przykład firma Microsoft wprowadziła obsługę protokołu HTTP/2 do zbioru usług (m.in. serwerów HTTP i HTTPS) zawartych w Internet Information Services (IIS) dla systemów z rodziny Microsoft Windows 10.
W ramach programu Technical Preview dla systemu Windows 10 obsługa HTTP/2 zaimplementowana została również w przeglądarce Microsoft Internet Explorer. Jak można się domyślić, także Chrome bez problemu obsługuje HTTP/2. W grupie programów obsługujących HTTP/2 nie mogło oczywiście zabraknąć Mozilli Firefox – w jej wypadku jest to możliwe od wersji 36.
Korzyści i zagrożenia
Podstawową korzyścią z wdrożenia protokołu HTTP/2 jest przyspieszenie pracy przeglądarek i serwerów. W zależności od treści WWW i serwisu, z którego się korzysta, strony internetowe będą się wczytywać średnio o 20–30 proc. szybciej. Niekiedy wzrost wydajności może dochodzić do 60 proc. Ale, jak podkreślają analitycy i programiści (m.in. Poul-Henning Kamp, który opublikował surową krytykę HTTP/2), nie jest aż tak różowo. Jak się okazuje, zastosowanie HTTP/2 zwiększa w określonych sytuacjach obciążenie po stronie serwera. Sytuacja taka ma miejsce przy przesyłaniu bardzo dużych zbiorów danych, takich jak np. filmy.
Również przyspieszenie działania internetu nie jest tak do końca oczywiste. W wypadku popularnych serwisów będzie na pewno widoczne, ale ze względu na wprowadzone priorytety niewielkie strony WWW umieszczane zwykle na serwerach wirtualnych mogą działać wolniej.
Kolejnym niebezpieczeństwem, jakie niesie ze sobą wprowadzenie HTTP/2, jest to, że programiści mogą zaprzestać optymalizowania kodu strony WWW. Jednoczesne wysyłanie elementów strony sprawia bowiem, że niezależnie od obciążenia strona w przeglądarce klienta będzie się ładować w miarę normalnie – nie ma znaczenia, czy jest napisana w sposób poprawny.
Pod lupą krytyków znalazło się też obowiązkowe szyfrowanie komunikacji przez HTTP/2 za pomocą SSL/TLS. W wielu wypadkach, np. przy przesyle przez dostawców multimediów materiałów wideo czy muzyki, szyfrowanie nie jest potrzebne, a może tylko spowolnić transfer. Są też sytuacje, w których szyfrowana komunikacja jest niezgodna z prawem, bo np. w niektórych krajach więźniowie nie mają prawa do prywatności. Jak te problemy zostaną rozwiązane? Zobaczymy.
Chrome Canary
Google udostępniło w sieci pierwszą wersję swojej eksperymentalnej przeglądarki, która jako pierwsza zapewnia pełne wsparcie finalnej wersji protokołu HTTP/2 (https://www.google.pl/chrome/browser/canary.html). Dzięki niej można m.in. samemu zweryfikować, w jakim stopniu przyspieszy internet bazujący na nowym protokole. Oczywiście strony WWW, które się ogląda, także muszą obsługiwać nową specyfikację,
a niestety nie ma ich zbyt wiele. Różnice w szybkości pomiędzy różnymi wersjami protokołów przetestować możesz na http://http2rulez.com.