Centrum wiedzy o technologiach i pracy w IT
protokol-http-co-to-jest-jak-dziala

Protokół HTTP – co to jest i jak działa?

Ostatnia aktualizacja 21 sierpnia, 2023

W dzisiejszych czasach protokół HTTP jest niezwykle ważnym elementem infrastruktury internetowej. Dzięki niemu możliwe jest pobieranie treści stron internetowych, przesyłanie formularzy czy też logowanie się na różnego rodzaju serwisy. Z tego tekstu dowiesz się, czym jest protokół HTTP i jak działa.

Nie udało się zapisać Twojej subskrypcji. Spróbuj ponownie.
Udało się! Widzimy się niebawem – newsletter wysyłamy co drugi czwartek

Otrzymuj za darmo unikalne poradniki, dane i wiedzę o pracy w IT – dostarczane co 2 tygodnie

Klikając “Zapisz mnie” wyrażasz zgodę na otrzymywanie e-maili od redakcji, a także ofert partnerów oraz akceptujesz naszą Politykę prywatności.

Protokół HTTP – co to jest?

HTTP (ang. Hypertext Transfer Protocol) to protokół komunikacyjny wykorzystywany w Internecie do przesyłania danych pomiędzy serwerem a przeglądarką internetową.

Protokół HTTP definiuje sposób, w jaki klient i serwer będą ze sobą komunikować się w celu przesłania żądania (np. pobrania strony internetowej) i odpowiedzi (np. przesłania treści strony). Jest to protokół warstwy aplikacji. To oznacza, że działa na najwyższym poziomie architektury OSI.

HTTP jest protokołem bezstanowym, co oznacza, iż serwer nie pamięta informacji o wcześniejszych żądaniach klienta. Dlatego każde nowe żądanie musi zawierać wszystkie informacje potrzebne do przetworzenia żądania i zwrócenia odpowiedzi.

Standardowe porty używane do komunikacji przy użyciu protokołu HTTP to port 80 dla zwykłego połączenia, jak również port 443 dla połączenia zabezpieczonego protokołem SSL/TLS (HTTPS).

Sprawdź: czy protokół HTTPS i SSL zapewniają bezpieczeństwo?

Protokół HTTP – jak działa?

Protokół HTTP działa na dość prostej zasadzie. Gdy użytkownik wpisuje adres strony internetowej w przeglądarce, przeglądarka wysyła żądanie (zapytanie) do serwera internetowego, w którym znajduje się dana strona. Żądanie to może mieć różną postać, w zależności od rodzaju działania, jakie chce wykonać użytkownik. Na przykład, jeśli chce pobrać plik, żądanie to będzie zawierało informację o tym, jakiego typu plik chce pobrać i w jakim formacie.

Serwer internetowy otrzymując żądanie, analizuje je i wysyła odpowiedź do przeglądarki użytkownika. Odpowiedź ta zawiera informacje na temat treści strony internetowej, którą użytkownik chciał pobrać lub też innej akcji, jaką chciał wykonać. Informacje te są zazwyczaj przesyłane w postaci kodu HTML, ale mogą też zawierać inne formaty, takie jak pliki graficzne, dźwiękowe czy wideo.

Dalsza część tekstu znajduje się pod materiałem wideo:

Przykład działania

Na przykład, gdy chcemy zobaczyć stronę internetową z informacjami o pogodzie, wpisujemy adres strony w przeglądarce. Przeglądarka wysyła żądanie do serwera, w którym znajduje się strona z informacjami o pogodzie. Serwer analizuje żądanie i wysyła odpowiedź zawierającą informacje o aktualnej pogodzie w danym miejscu. Przeglądarka otrzymuje odpowiedź i wyświetla informacje o pogodzie na stronie internetowej.

Model żądanie-odpowiedź

Protokół HTTP bazuje na modelu żądanie-odpowiedź. Każde żądanie składa się z kilku części, takich jak metoda, URL, nagłówki i ciało. Metoda określa, jaką akcję chce wykonać użytkownik, np. GET (pobierz), POST (wyślij), PUT (wstaw), DELETE (usuń).

  • URL to adres strony internetowej, którą użytkownik chce odwiedzić.
  • Nagłówki to informacje przesyłane razem z żądaniem, które opisują m.in. typ przeglądarki czy też preferencje użytkownika.
  • Ciało to opcjonalna część żądania, która zawiera dodatkowe informacje, np. formularz, który użytkownik wypełnił.

Odpowiedź serwera również składa się z kilku części, takich jak status, nagłówki i ciało.

  • Status informuje o tym, czy żądanie zostało pomyślnie zrealizowane, a może nie, np. czy strona internetowa istnieje, czy też nie.
  • Nagłówki to informacje przesyłane razem z odpowiedzią, które opisują m.in. typ treści czy też czas ważności.
  • Ciało to opcjonalna część odpowiedzi, która zawiera żądane treści, np. kod HTML strony internetowej.

Nagłówki HTTP

Nagłówki HTTP odgrywają istotną rolę w komunikacji między klientem (na przykład przeglądarką internetową) a serwerem, umożliwiając przekazywanie różnych metadanych i informacji sterujących.

Są to predefiniowane pary klucz-wartość, które mogą zawierać różne informacje, takie jak typ zawartości, język, długość zawartości, uprawnienia do buforowania i wiele innych. Na przykład, nagłówek “Content-Type” informuje o typie danych zawartych w ciele odpowiedzi, takich jak “text/html” dla dokumentów HTML.

Nagłówki mogą również zawierać informacje specyficzne dla autoryzacji, ciasteczek i niestandardowe informacje zdefiniowane przez deweloperów. Dzięki temu mechanizmowi, zarówno klient, jak i serwer mogą lepiej zrozumieć, jak mają interpretować i obsługiwać przesyłane dane, co umożliwia bardziej wyrafinowaną i elastyczną komunikację.

Sprawdź: HTTP request, czyli jak komunikować się z API?

protokol-http-co-to-jest-jak-dziala-bezpieczny

HTTP to protokół bezstanowy i bezpieczny

Warto zaznaczyć, że HTTP jest protokołem bezstanowym, co oznacza, iż serwer nie pamięta żadnych informacji o użytkowniku między kolejnymi żądaniami. Dlatego też każde żądanie jest traktowane jako odrębne. Serwer nie wie, czy żądanie wysyła ten sam użytkownik, czy też inny. Aby rozwiązać ten problem, stosuje się mechanizm ciasteczek (cookies). Pozwalają one przechowywać informacje o użytkowniku między kolejnymi żądaniami.

HTTP jest także protokołem bezpiecznym, ponieważ dane przesyłane są w sposób zaszyfrowany, co chroni je przed nieautoryzowanym dostępem lub przechwyceniem przez osoby trzecie. W celu zapewnienia bezpieczeństwa przesyłanych danych stosuje się protokół HTTPS (HTTP Secure), który wykorzystuje certyfikaty SSL/TLS do szyfrowania połączenia między przeglądarką użytkownika a serwerem.

W dzisiejszych czasach protokół HTTP jest wykorzystywany wraz z wieloma innymi technologiami, takimi jak JavaScript, CSS czy też AJAX. To oczywiście umożliwia tworzenie coraz bardziej interaktywnych i zaawansowanych stron internetowych.

Zobacz raport: specjalizacja JavaScript – lipiec 2022

Total
0
Shares
_podobne artykuły