Czym jest protokół HTTP i czym różni się od HTTPS?

Czym jest protokół HTTP i czym różni się od HTTPS?
Za każdym razem, gdy otwierasz stronę internetową, przeglądarka i serwer wymieniają wiadomości według określonych zasad. Te zasady to protokół HTTP. Litera „S” w HTTPS wygląda na drobiazg, ale w rzeczywistości oddziela zwykły tekst od bezpiecznego połączenia. Sprawdźmy, jak to działa.
Czym jest HTTP
HTTP (HyperText Transfer Protocol, protokół przesyłania hipertekstu) określa, jak klient (zwykle przeglądarka) pobiera dane z serwera i jak serwer na to odpowiada. Protokół powstał na początku lat 90. razem z World Wide Web. Tim Berners-Lee stworzył go do przesyłania stron HTML.
HTTP działa w modelu „żądanie–odpowiedź”. Przeglądarka wysyła żądanie, na przykład „daj mi stronę /about”. Serwer zwraca odpowiedź: kod statusu, nagłówki i treść, czyli samą stronę, obrazek albo JSON.
Najprostsze żądanie wygląda tak:
GET /about HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
A odpowiedź tak:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
<html>...</html>
Metody HTTP
Metoda mówi serwerowi, co klient chce zrobić. Główne metody to:
GETpobiera dane;POSTwysyła dane, na przykład formularz;PUTiPATCHaktualizują zasób;DELETEgo usuwa.
Kody odpowiedzi
Pierwsza cyfra kodu od razu pokazuje, jak zakończyło się żądanie:
- 2xx: wszystko w porządku (200 OK);
- 3xx: przekierowanie (301, 302);
- 4xx: błąd po stronie klienta (404 Not Found, 403 Forbidden);
- 5xx: błąd po stronie serwera (500, 502 Bad Gateway).
HTTP nie przechowuje stanu
Każde żądanie jest obsługiwane niezależnie, a serwer sam z siebie „nie pamięta”, że odwiedziłeś go sekundę temu. Dlatego do logowania i koszyków używa się plików cookie, sesji i tokenów.
Wersje protokołu
HTTP/1.1 przez wiele lat był standardem. HTTP/2 nauczył się przesyłać wiele żądań równolegle w ramach jednego połączenia. HTTP/3 działa na QUIC (opartym na UDP) zamiast TCP i szybciej nawiązuje połączenie, zwłaszcza w sieciach komórkowych.
Główny problem HTTP
Zwykły HTTP przesyła wszystko otwartym tekstem. Każdy, kto znajduje się między tobą a serwerem, widzi treść żądań i odpowiedzi: loginy, hasła, numery kart, wiadomości. Może to być właściciel publicznego Wi-Fi w kawiarni, dostawca internetu albo przestępca w tej samej sieci. Co gorsza, może on niepostrzeżenie podmienić dane, na przykład wstrzyknąć do strony reklamy lub złośliwy skrypt.
Czym jest HTTPS
HTTPS (HTTP Secure) to ten sam HTTP, ale przesyłany szyfrowanym kanałem TLS. Metody, nagłówki i kody odpowiedzi pozostają bez zmian. Zmienia się tylko „rura”, którą płyną dane.
TLS rozwiązuje jednocześnie trzy problemy.
Poufność. Dane są szyfrowane, więc podsłuchujący widzi jedynie bezsensowny ciąg bajtów.
Integralność. Jeśli ktoś zmieni dane po drodze, odbiorca to wykryje.
Uwierzytelnianie. Serwer przedstawia certyfikat podpisany przez zaufany urząd certyfikacji (CA). Dzięki temu przeglądarka ma pewność, że łączy się z example.com, a nie z fałszywą stroną.
Jak nawiązywane jest bezpieczne połączenie
Zanim zacznie się wymiana danych, klient i serwer przeprowadzają uzgadnianie TLS (handshake). Przeglądarka informuje, jakie algorytmy szyfrowania obsługuje. Serwer odpowiada wybranym zestawem i przesyła swój certyfikat. Przeglądarka weryfikuje certyfikat w łańcuchu zaufania. Następnie obie strony za pomocą kryptografii asymetrycznej uzgadniają wspólny tajny klucz. Cały dalszy ruch jest szyfrowany tym kluczem symetrycznie, co jest szybkie. W TLS 1.3 uzgadnianie zajmuje tylko jedną wymianę wiadomości w obie strony.
HTTP i HTTPS: porównanie
HTTPHTTPS SzyfrowanieNieTak (TLS) Domyślny port80443 Weryfikacja tożsamości serweraNieTak, przez certyfikat Ochrona przed podmianą danychNieTak Wyświetlanie w przeglądarce„Niezabezpieczona”Ikona kłódki Wpływ na SEONegatywnyPozytywny (sygnał rankingowy Google) Obsługa HTTP/2 i HTTP/3 w przeglądarkachNieTakMity o HTTPS
„HTTPS jest wolniejszy”. Kiedyś szyfrowanie rzeczywiście zauważalnie obciążało serwer. Dziś procesory szyfrują sprzętowo, a TLS 1.3 skrócił uzgadnianie. Co najważniejsze, przeglądarki obsługują szybsze HTTP/2 i HTTP/3 tylko przez HTTPS, więc w praktyce zabezpieczona strona często ładuje się szybciej.
„Certyfikat jest drogi”. Darmowy urząd certyfikacji Let's Encrypt wydaje certyfikaty automatycznie, a narzędzie Certbot samo je odnawia.
„HTTPS oznacza, że strona jest bezpieczna”. Kłódka gwarantuje jedynie bezpieczny kanał i autentyczność domeny. Strona phishingowa też może mieć ważny certyfikat, dlatego zawsze uważnie sprawdzaj adres.
Jak przenieść stronę na HTTPS
Na typowym serwerze z Nginx wystarczą trzy kroki. Najpierw uzyskaj certyfikat, na przykład za pomocą Certbota:
sudo certbot --nginx -d example.com -d www.example.com
Następnie skonfiguruj przekierowanie całego ruchu HTTP na HTTPS:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Na koniec włącz HSTS. Ten nagłówek nakazuje przeglądarce łączyć się ze stroną wyłącznie przez HTTPS.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Podsumowanie
HTTP to język, którym przeglądarka i serwer rozmawiają ze sobą. HTTPS to ten sam język, tyle że rozmowa toczy się w zabezpieczonym pokoju, gdzie nikt obcy nie może podsłuchać ani podrzucić fałszywej karteczki. W 2026 roku HTTPS jest standardem: przeglądarki oznaczają strony bez niego jako niezabezpieczone, wyszukiwarki obniżają ich pozycję, a certyfikat można zdobyć za darmo w kilka minut. Jeśli twoja strona wciąż działa na zwykłym HTTP, to najwyższy czas to zmienić.
Wstecz



