Protokół HTTP/2
HTTP = Hypertext Transfer Protocol – protokół transferu (dokumentów) hipertekstowych
Jest następcą protokołów HTTP 1.0 i HTTP 1.1, które zostały dostatecznie opisane w Wikipedii.
Protokół HTTP 1.0 jest opisany w RFC 1945.
Protokół HTTP 1.1 był opisany początkowo w RFC 2068, ostatecznie w RFC 2616.
Protokół HTTP/2 jest opisany w RFC 7540. W RFC 7541 definiuje HPACK, czyli sposób kompresji nagłówków HTTP/2
Główne zmiany
- Przeglądarka nawiązuje jedno trwałe połączenie z serwerem zamiast wielokrotnego wysyłania żądań i wielokrotnego pobierania odpowiedzi.
- Możliwe jest wykonanie wielu zapytań do serwera na raz (zapytania równoległe) zamiast wielu kolejnych, kolejkowanych żądań
- Serwer może wysyłać powiadomienia ze strony internetowej do przeglądarki bez żądania ze strony przeglądarki. Dosłownie jest to możliwość wysyłania wielu odpowiedzi przez serwer w odpowiedzi na pojedyncze żądanie klienta. Serwer może na przykład wysyłać odpowiedzi, które zdaniem serwera mogą być wkrótce potrzebne, w więc powinny znaleźć się w buforze. Na razie jest to cecha eksperymentalna i częściowo obsługiwana przez przeglądarki.
- Serwer może nadawać wyższy priorytet ważnym zasobom, a niższy mniej ważnym, co przyśpieszy ładowanie stron
- Komunikacja między serwerem, a przeglądarką odbywa się przy pomocy poleceń binarnych, a nie tekstowych, co zmniejsza ryzyko błędów (przy tłumaczeniu) i zwiększa szybkość (brak kosztownego czasowo tłumaczenia, parsowania, sprawdzania, etc.)
- Nagłówki są kompresowane przy użyciu HPACK zamiast GZIP, co zwiększa bezpieczeństwo
Zalety nowego protokołu
- Zapewnia znacznie szybszą komunikację i transfer pomiędzy przeglądarką, a serwerem.
- Przeglądarki, ale nie sam protokół wymagają użycia certyfikatu SSL, co znacznie zwiększa bezpieczeństwo połączeń.
- Wszystkie ważniejsze przeglądarki (Edge, Safari, Firefox, Opera, Chrome, Internet Explorer 11) wspierają HTTP/2
- Wszystkie ważniejsze serwery – programy wspierają HTTP/2
Pośrednie korzyści
- Wyższa pozycja w wyszukiwarce Google Chrome
- Bezpieczna strona jest znacznie bardziej wiarygodna.
Pośrednie wady
- Nie działa na telnecie
Zajrzyj też Java 11: HTTP Client (Standard)