HTTP (Hypertext Transfer Protocol)
HTTP – skrót od Hypertext Transfer Protocol – jest to protokół aplikacyjny warstwy Internetu, który umożliwia wymianę dokumentów hipertekstowych, najczęściej w postaci stron WWW. Jest on podstawą komunikacji pomiędzy klientem (zazwyczaj przeglądarką internetową) a serwerem sieciowym.
Historia
Protokół HTTP został opracowany w 1991 roku w ramach projektu WorldWideWeb w CERN. Jego pierwsza specyfikacja została opublikowana jako RFC 1945 w 1996 roku i opisywała wersję HTTP/1.0. Następnie w 1997 roku ukazał się RFC 2068, wprowadzający HTTP/1.1. Kolejne wersje – HTTP/2 (standard RFC 7540 z 2015 roku) oraz HTTP/3 (oparty na protokole QUIC) – wprowadzają ulepszenia związane z wydajnością i bezpieczeństwem.
Budowa protokołu
Komunikacja w HTTP opiera się na modelu request‑response. Każda wymiana składa się z:
- Żądania (request) – przesyłane przez klienta, zawierające metodę, docelowy URL, wersję protokołu oraz nagłówki.
- Odpowiedzi (response) – zwracane przez serwer, zawierające kod statusu, opis, wersję protokołu oraz nagłówki i opcjonalnie treść.
Metody żądania
Najczęściej używane metody to:
GET– pobranie zasobu.POST– wysłanie danych (np. formularzy).PUT– zapisanie zasobu.DELETE– usunięcie zasobu.HEAD– pobranie tylko nagłówków.OPTIONS– zapytanie o dostępne metody.
Kody statusu
Odpowiedzi serwera zawierają trzycyfrowy kod statusu, podzielony na klasy:
| Kod | Klasa | Znaczenie |
|---|---|---|
| 1xx | Informacyjne | Informacja o trwającym przetwarzaniu żądania. |
| 2xx | Sukces | Żądanie zostało pomyślnie zrealizowane (np. 200 OK). |
| 3xx | Przekierowanie | Żądanie wymaga dodatkowego działania (np. 301 Moved Permanently). |
| 4xx | Błąd klienta | Nieprawidłowe żądanie (np. 404 Not Found). |
| 5xx | Błąd serwera | Problem po stronie serwera (np. 500 Internal Server Error). |
Wersje protokołu
- HTTP/1.0
- Podstawowa wersja wprowadzona w 1996 roku. Wymaga otwarcia nowego połączenia TCP dla każdego żądania.
- HTTP/1.1
- Wersja 1997 roku, wprowadzająca połączenia trwałe, kompresję nagłówków (gzip), i dodatkowe metody.
- HTTP/2
- Opublikowana jako RFC 7540 w 2015 roku. Wykorzystuje binarny format wiadomości, muliplexowanie żądań w jednym połączeniu TCP oraz mechanizm priorytetów.
- HTTP/3
- Najnowsza wersja, oparta na protokole QUIC (UDP). Zapewnia niższe opóźnienia, lepszą obsługę utraty pakietów i wbudowane szyfrowanie.
Bezpieczeństwo – HTTPS
Wersja zabezpieczona protokołu nazywa się HTTPS (TLS over HTTP). Dzięki szyfrowaniu zapewnia poufność i integralność przesyłanych danych oraz umożliwia uwierzytelnienie serwera poprzez certyfikaty PKI.
Zastosowania
HTTP jest wykorzystywany nie tylko w przeglądarkach internetowych, ale także w:
- Interfejsach API (REST, GraphQL).
- Komunikacji między usługami w architekturze mikroserwisów.
- Aplikacjach mobilnych korzystających z usług sieciowych.
Powiązane pojęcia
Do najważniejszych pojęć powiązanych z HTTP należą:
- TCP – protokół transportowy używany w wersjach 1.x i 2.
- UDP – protokół transportowy wykorzystywany w HTTP/3.
- URL – adres zasobu w sieci.
- Cache – mechanizmy przechowywania odpowiedzi w celu przyspieszenia dostępu.
- Cookie – sposób utrzymywania stanu sesji.
HTTP pozostaje jednym z fundamentów współczesnego Internetu, a jego ciągły rozwój dostosowuje protokół do rosnących wymagań dotyczących wydajności i bezpieczeństwa.