Różnice między HTTP a HTTPS – co to jest?

HTTP (Hypertext Transfer Protocol) i HTTPS (HTTP Secure) to protokoły komunikacyjne używane do przesyłania danych między przeglądarką użytkownika a serwerem. Kiedy wpisujesz adres strony i klikasz Enter, przeglądarka wysyła żądanie HTTP lub HTTPS do serwera – serwer odpowiada, przesyłając zawartość strony.

Różnica między nimi sprowadza się do jednego słowa: szyfrowanie.

Jak działa HTTP?

HTTP to bezstanowy protokół tekstowy. Dane przesyłane są w postaci jawnej – nieszyfrowanej. Każde żądanie (request) i odpowiedź (response) zawierają nagłówki z metadanymi oraz treść (np. kod HTML, JSON).

“Bezstanowy” oznacza, że serwer nie pamięta poprzedniego żądania od tej samej przeglądarki. Każde żądanie jest traktowane niezależnie. Stan (np. zalogowany użytkownik) utrzymują cookies i sesje.

Problem z HTTP: ktokolwiek jest w stanie “podsłuchać” ruch sieciowy między użytkownikiem a serwerem – widzi wszystkie przesyłane dane w postaci tekstowej. Loginy, hasła, numery kart kredytowych, treść wpisów – wszystko jawne.

Jak działa HTTPS?

HTTPS to HTTP z dodatkową warstwą szyfrowania – SSL (Secure Sockets Layer) lub jego następcą TLS (Transport Layer Security). W praktyce termin “SSL” i “certyfikat SSL” są powszechnie używane, choć technologia używana we współczesnych stronach to TLS.

Zanim przeglądarka i serwer zaczną wymieniać dane, przeprowadzają tzw. TLS handshake (uścisk dłoni):

  1. Przeglądarka pyta serwer o certyfikat.
  2. Serwer przesyła certyfikat podpisany przez zaufaną instytucję (Certificate Authority, CA).
  3. Przeglądarka weryfikuje certyfikat i generuje klucz sesji.
  4. Wszystkie dalsze dane są szyfrowane tym kluczem.

Efekt: dane przesyłane między przeglądarką a serwerem są zaszyfrowane. Ktoś “podsłuchujący” ruch widzi tylko zaszyfrowane dane, które bez klucza są bezużyteczne.

Certyfikat SSL/TLS – co to jest?

Certyfikat SSL to plik cyfrowy potwierdzający tożsamość serwera i zawierający klucz publiczny do szyfrowania. Wydawany jest przez zaufane organizacje (Certificate Authority: Let’s Encrypt, DigiCert, Sectigo i inne).

Let’s Encrypt to darmowa i automatyczna CA. Większość dostawców hostingu udostępnia certyfikaty Let’s Encrypt w pakiecie. Certyfikat jest ważny 90 dni i odnawiany automatycznie.

Certyfikaty różnią się poziomem walidacji:
DV (Domain Validation) – potwierdzenie własności domeny. Wystarczy dla większości stron.
OV (Organization Validation) – weryfikacja organizacji.
EV (Extended Validation) – rozszerzona weryfikacja; dawniej wyświetlała nazwę firmy na zielono w pasku przeglądarki, ale większość przeglądarek wyłączyła ten znacznik wizualny.

Dlaczego HTTPS jest obowiązkowy?

Bezpieczeństwo

Bez HTTPS dane logowania, cookies sesji i przesyłane formularze są podatne na przechwycenie. W sieciach publicznych (kawiarnie, lotniska) atak man-in-the-middle jest stosunkowo łatwy do przeprowadzenia.

SEO

Google od 2014 roku traktuje HTTPS jako sygnał rankingowy. Strony HTTPS mają przewagę nad HTTP przy zbliżonej jakości treści. Od 2018 roku Chrome oznacza strony HTTP jako “niezabezpieczone” w pasku adresu.

Zaufanie użytkowników

Kłódka w pasku adresu to sygnał bezpieczeństwa dla użytkownika. Brak kłódki (HTTP) może zniechęcić do podania danych osobowych lub dokonania zakupu w sklepie.

Nowoczesne funkcje przeglądarek

Część funkcji API przeglądarek (np. service workers, geolocation API, powiadomienia push) działa wyłącznie przez HTTPS.

Jak wdrożyć HTTPS w WordPress?

  1. Zainstaluj certyfikat SSL – przez panel hostingu (Let’s Encrypt lub certyfikat od dostawcy). Większość hostingów robi to jednym kliknięciem.
  2. Zaktualizuj adresy URL w WordPress – w Ustawienia → Ogólne zmień adres WordPress i adres strony z http:// na https://.
  3. Ustaw przekierowanie 301 – wszystkie żądania HTTP powinny być automatycznie przekierowane na HTTPS. Zwykle robi to wtyczka (Really Simple SSL) lub konfiguracja serwera.
  4. Zaktualizuj linki wewnętrzne – hardcodowane linki http:// w treści wpisów i widżetach należy zaktualizować do https://. Wtyczki migracyjne (Better Search Replace) przeszukują i zamieniają je w bazie danych.
  5. Zweryfikuj w narzędziach deweloperskich – sprawdź zakładkę Network, czy żadne zasoby (obrazy, skrypty, style) nie są ładowane przez http:// (tzw. mixed content).

Przekierowanie HTTP do HTTPS omawia artykuł o przekierowaniu 301 i 302.

HTTPS a nagłówki bezpieczeństwa

HTTPS to warunek konieczny bezpieczeństwa, ale niewystarczający. Protokół szyfruje transmisję, ale nie chroni przed atakami na poziomie aplikacji (XSS, clickjacking, CSRF). Do tego służą dodatkowe mechanizmy opisane w artykule o nagłówkach bezpieczeństwa.

Podsumowanie

HTTP przesyła dane nieszyfrowane; HTTPS szyfruje je za pomocą SSL/TLS. HTTPS jest dziś standardem – wymaganym przez wiele nowoczesnych funkcji przeglądarek, istotnym dla SEO i zwykle niezbędnym elementem bezpiecznego przetwarzania danych osobowych na stronie. Certyfikat SSL (często darmowy przez Let’s Encrypt) instalujesz przez panel hostingu, a przekierowanie HTTP→HTTPS konfigurujesz przez wtyczkę lub serwer.