HTTP (Hypertext Transfer Protocol) – główny protokół sieciowy umożliwiający przesyłanie i odbieranie informacji między serwerem a użytkownikiem.
Jest to podstawowy protokół wykorzystywany w sieciach komputerowych, zwłaszcza w Internecie, do komunikacji między klientami (przeglądarkami internetowymi) a serwerami. HTTP opiera się na architekturze klient-serwer, gdzie klient wysyła żądania do serwera, a serwer odpowiada na te żądania, przesyłając odpowiednie dane.
Protokół HTTP działa w oparciu o model żądanie-odpowiedź, gdzie klient (przeważnie przeglądarka internetowa) wysyła żądanie do serwera, a serwer odpowiada na to żądanie, dostarczając odpowiednie dane. Żądania HTTP są oparte na tzw. metodach, takich jak GET, POST, PUT, DELETE, które określają rodzaj akcji, jaką klient chce wykonać na zasobie. Serwer analizuje żądanie i zwraca odpowiednią odpowiedź, która może zawierać dane zasobu, informacje o błędzie lub potwierdzenie wykonania akcji.
Odpowiedzi HTTP są oparte na kodach stanu, które informują klienta o wyniku żądania. Kody stanu są trzycyfrowymi liczbami, które można podzielić na pięć klas, w zależności od pierwszej cyfry. Przykłady kodów stanu to 200 (OK), 404 (Not Found) czy 500 (Internal Server Error). Kody te pozwalają klientowi zrozumieć, czy żądanie zostało pomyślnie zrealizowane, czy też wystąpił jakiś błąd.
Pierwotna wersja protokołu HTTP, znana jako HTTP/1.0, nie oferowała żadnych mechanizmów zabezpieczających, co prowadziło do wielu problemów związanych z prywatnością i bezpieczeństwem danych. W odpowiedzi na te problemy opracowano protokół HTTPS (HTTP Secure), który dodaje warstwę szyfrowania SSL/TLS do komunikacji między klientem a serwerem. Dzięki temu dane przesyłane za pomocą HTTPS są chronione przed przechwyceniem przez osoby trzecie.
Wprowadzenie HTTP/2 przyniosło wiele usprawnień w stosunku do poprzedniej wersji, takich jak kompresja nagłówków, wielokrotne przesyłanie danych w ramach jednego połączenia oraz priorytetyzacja żądań. Te zmiany przyczyniły się do zwiększenia wydajności i szybkości działania stron internetowych.
Obecnie rozwijana jest kolejna wersja protokołu, HTTP/3, która ma na celu dalsze usprawnienie komunikacji między klientem a serwerem, wprowadzając nowe funkcje i technologie, takie jak protokół QUIC. QUIC to protokół transportowy opracowany przez Google, który ma zastąpić TCP w komunikacji HTTP, oferując lepszą wydajność i niższe opóźnienia.