Rekrutacja 2026/2027 wystartowała!
Aplikuj
Blog Okiem studenta
26.01.2026

Cookies, sesje i tokeny – jak aplikacje przechowują dane użytkownika?

Tymoteusz Krawiec
Student

Zmieniliśmy się. Poznaj nas na nowo

Czytaj więcej

Każda nowoczesna aplikacja internetowa musi radzić sobie z wyzwaniem: jak „zapamiętać” użytkownika i jego interakcje? Bez tego nie mielibyśmy możliwości pozostania zalogowanym, przechowywania produktów w koszyku czy zapisywania preferencji językowych. Mechanizmy stojące za tym procesem to cookies, sesje i tokeny. Choć cel mają podobny – przechowywanie danych użytkownika – ich działanie i zastosowanie znacząco się różni.

Cookies – fundament pamięci przeglądarki

Ciasteczka (cookies) istnieją w sieci od lat 90. i są najstarszym mechanizmem utrzymywania stanu użytkownika. To niewielkie pliki tekstowe zapisywane w przeglądarce, zawierające pary klucz-wartość.

Najważniejsze cechy cookies:

  • Mogą być sesyjne (wygasają po zamknięciu przeglądarki) lub trwałe (przechowywane do ustalonej daty).
  • Obowiązuje dla nich zasada same-origin – ciasteczko ustawione przez jedną domenę nie jest dostępne dla innej.
  • Ich rozmiar jest ograniczony (zwykle kilka KB), ale w praktyce wystarcza do przechowywania identyfikatorów i prostych ustawień.
  • Występują w wersji HttpOnly (niedostępne z poziomu JavaScript, co chroni przed XSS) oraz Secure (wysyłane tylko przez HTTPS).

Zastosowania cookies:

  • przechowywanie preferencji interfejsu,
  • zapamiętywanie logowania,
  • śledzenie aktywności i analityka (np. Google Analytics, piksele reklamowe).

Warto pamiętać, że zbyt szerokie użycie cookies budzi kontrowersje – m.in. w kontekście prywatności i regulacji takich jak RODO.

Sesje – logika po stronie serwera

Sesje to krok dalej. Dane użytkownika nie są przechowywane w przeglądarce, a po stronie serwera. Przeglądarka otrzymuje jedynie identyfikator sesji (np. PHPSESSID czy JSESSIONID) zapisywany zwykle w cookie. Dzięki temu wszystkie szczegóły – jak login, rola użytkownika czy koszyk zakupowy – są trzymane bezpośrednio w pamięci lub bazie danych aplikacji.

Zalety sesji:

  • Wyższe bezpieczeństwo – wrażliwe dane nie trafiają do klienta.
  • Łatwe zarządzanie czasem życia – sesja może wygasać np. po 30 minutach bezczynności.
  • Możliwość przechowywania dużej ilości informacji – serwer nie jest ograniczony kilkoma kilobajtami jak cookies.

Wady:

  • Rosnące obciążenie serwera przy dużej liczbie aktywnych użytkowników.
  • Konieczność stosowania rozwiązań skalujących (np. Redis, Memcached), aby sesje działały w systemach rozproszonych.

Sesje sprawdzają się tam, gdzie kluczowe jest bezpieczeństwo i spójność danych – np. w bankowości online, systemach płatności czy panelach administracyjnych.

Tokeny – elastyczność i niezależność

Wraz z rozwojem aplikacji mobilnych oraz architektury opartej na API, na popularności zyskały tokeny, w szczególności JWT (JSON Web Token). Token JWT to zaszyfrowany lub podpisany ciąg znaków, który zawiera dane użytkownika, czas ważności oraz podpis weryfikacyjny.

Cechy tokenów:

  • Są samowystarczalne – zawierają wszystkie niezbędne informacje, bez potrzeby odwoływania się do serwera.
  • Mogą być krótkotrwałe (np. access token ważny 15 minut) i odnawiane za pomocą tzw. refresh tokena.
  • Dobrze działają w systemach rozproszonych i mikroserwisach, gdzie brak centralnego serwera sesji.
  • Najczęściej przechowywane są w localStorage lub cookies. Wrażliwe aplikacje preferują HttpOnly
    Secure cookies, aby zminimalizować ryzyko ataku XSS.

Zastosowania: logowanie w aplikacjach SPA (React, Angular), autoryzacja API, integracje mobilne.

Wyzwania:

  • Token nie może być łatwo unieważniony – jeśli zostanie przechwycony, atakujący może z niego korzystać aż do wygaśnięcia.
  • Bezpieczna implementacja wymaga dodatkowych mechanizmów: rotacji tokenów, listy unieważnień (blacklist), limitów czasowych.

Cookies, sesje i tokeny – porównanie

Podsumowanie

Cookies, sesje i tokeny to trzy różne sposoby radzenia sobie z przechowywaniem danych użytkownika. Cookies zapewniają prostotę i działają od dekad, sesje oferują większe bezpieczeństwo i kontrolę po stronie serwera, a tokeny są odpowiedzią na potrzeby nowoczesnych aplikacji rozproszonych. Dzięki tym mechanizmom aplikacje mogą nie tylko działać szybciej i wygodniej, ale też lepiej chronić dane
użytkowników w coraz bardziej wymagającym świecie sieci.