Protokół HTTP: Połączenie kontra żądanie

17 Sep 2019

connections  http  requests 

Share on:

Jak zdefiniować połączenie a jak żądanie? Czym jest pierwsze a czym drugie? Może tym samym?

Zasadniczo, nawiązujemy połączenia w celu wysyłania za ich pomocą żądań. Można mieć wiele żądań na połączenie jednak nigdy żadne żądanie nie zostanie obsłużone bez zestawionego połączenia z racji tego, że HTTP najczęściej implementowane jest nad TCP/IP.

Spójrz na poniższy zrzut, który dodatkowo zawiera informację o protokole TLS w komunikacji:

Połączenie jest niezawodnym potokiem opartym na protokole TCP między dwoma punktami końcowymi. Każde połączenie wymaga śledzenia zarówno adresów/portów punktów końcowych, numerów sekwencyjnych, jak i pakietów, których nie potwierdzono. Żądanie zaś to „prośba” o dany zasób za pomocą określonej metody, wykorzystująca połączenia podczas komunikacji z serwerem.

Większość współczesnych przeglądarek otwiera jednocześnie kilka połączeń i jednocześnie pobiera różne pliki (obrazy, css, js), aby przyspieszyć ładowanie strony. Oczywiście, wszystko zależy również od wykorzystywanej wersji protokołu HTTP.

Stąd jak widać, każde połączenie może obsługiwać wiele żądań (można złożyć wiele żądań przy użyciu tego samego połączenia). Dla HTTP/1.0 jest to domyślnie jedno żądanie na połączenie, dla HTTP/1.1 domyślnie od 4 do 6 połączeń z możliwością wykorzystania mechanizmu podtrzymywania połączeń (Keep-Alive).

Zerknij także na to proste porównanie:

Jeśli więc nadmiernie ograniczysz liczbę połączeń lub liczbę żądań, spowolnisz szybkość ładowania serwisu.