HTTP/2
HTTP/2 jest ewolucją protokołu HTTP 1.1. Jego głównym celem jest większa efektywność w sieci. Semantyka pozostaje taka sama, więc protokół jest zaprojektowany z myślą o zgodności ze starszymi protokołami.
Ograniczenia HTTP 1.1
HTTP 1.1 jest ograniczony do przetwarzania jednego żądania na połączenie, dlatego klienci zazwyczaj
używają więcej niż jednego połączenia do pobierania plików z serwerów. Rodzi to jednak problem,
ponieważ przy zbyt wielu otwartych połączeniach TCP klienci rywalizują o zasoby serwera,
a wydajność spada wraz ze wzrostem liczby klientów łączących się z serwerami.
Główne funkcje
- HTTP/2 jest protokołem binarnym (dla przypomnienia: HTTP 1.1 jest protokołem tekstowym).
- HTTP/2 działa przez TLS i ALPN.
- Protokół jest multipleksowany (umożliwia wysyłanie więcej niż jednego żądania przez pojedyncze połączenie TCP).
- Serwer może przekazywać odpowiedzi do klientów.
- Skraca czasy podróży w obie strony, dzięki czemu klienci mogą ładować się szybciej.
HTTP/2 wprowadza inne udoskonalenia, więcej szczegółów: RFC7540.
HTTP/2 wymaga naszej niestandardowej wersji Indy, ponieważ
wymaga protokołu ALPN.
Komponenty
- TsgcHTTP2Client: komponent klienta z pełną obsługą protokołu HTTP/2 (kod Pascal w 100% sgcWebSockets, bez zewnętrznych bibliotek).
- TsgcWebSocketHTTPServer:
komponent serwerowy obsługujący w pełni protokół HTTP/2 (kod Pascal sgcWebSockets w 100%, bez zewnętrznych bibliotek). Domyślnie HTTP/2 jest
wyłączony; można go włączyć za pomocą właściwości HTTPOptions, ustawiając Enable
= true.
- TsgcWebSocketServer_HTTPAPI:
komponent serwera obsługujący protokół HTTP/2 (implementacja Microsoft,
wymaga systemu Windows 2016+ lub Windows 10+).
- Serwery DataSnap: serwer datasnap może również obsługiwać protokół HTTP/2.
API