Gdy serwer WWW odpowiada na żądanie zasobu, może dołączyć do odpowiedzi nagłówek Set-Cookie
. Ten nagłówek informuje przeglądarkę, że ma zapisać plik cookie. Na przykład: Set-Cookie:cat=tabby
.
W artykule Co to są pliki cookie? znajdziesz wyjaśnienie, jak działają pliki cookie.
Oprócz podania nazwy i wartości pliku cookie Set-Cookie
może zawierać atrybuty, które określają, czy pliki cookie są ustawiane i kiedy wygasają. Atrybuty pliku cookie są rozdzielone średnikami. Na przykład:
Set-Cookie:cat=tabby; Secure; HTTPOnly; Expires=Tue, 31 Dec 2999 23:59:59 GMT;
W tym dokumencie wyjaśniamy najważniejsze atrybuty plików cookie:
Korzystanie z plików cookie HTTP zawiera bardziej szczegółowe wyjaśnienie atrybutów plików cookie.
Bezpieczeństwo
Jeśli nagłówek Set-Cookie
zawiera Secure
, plik cookie będzie dołączany tylko do zaszyfrowanych żądań, które korzystają z protokołu HTTPS. Nie będzie on dołączany do żądań HTTP. Może to pomóc w zapobieganiu atakom pośrednim, w których osoba przeprowadzająca atak potajemnie ingeruje w komunikację między przeglądarką a serwerem, aby przekazywać informacje i potencjalnie je zmieniać.
HTTPOnly
Jeśli nagłówek Set-Cookie
zawiera HTTPOnly
, JavaScript nie może uzyskać dostępu do pliku cookie, np. za pomocą document.cookie
. Pomaga to chronić przed niektórymi rodzajami ataków
skierowanych na pliki cookie.
SameSite
Żądanie zasobu z witryny innej niż ta, którą odwiedzasz, to żądanie pochodzące z innej witryny. Plik cookie ustawiony w odpowiedzi na żądanie z innej witryny to plik cookie innej firmy.
Atrybut SameSite
decyduje o tym, czy plik cookie innej firmy zostanie uwzględniony w żądaniu. Może przyjmować 3 wartości: Strict
, Lax
lub None
.
Więcej informacji znajdziesz w artykule Co to są pliki cookie innych firm?
Tryb rygorystyczny
Plik cookie będzie wysyłany tylko w odpowiedzi na żądania ze strony, która znajduje się w witrynie pochodzenia pliku cookie. Załóżmy na przykład, że użytkownik odwiedza stronę cats.example
i ma ustawiony plik cookie z atrybutem SameSite=Strict
. Później użytkownik odwiedza inną witrynę i klika link do strony w cats.example
. Ustawiony plik cookie nie zostanie uwzględniony w tym żądaniu.
Lax
Działa to tak samo jak Strict
, z tym że przeglądarka będzie też uwzględniać plik cookie, gdy użytkownik kliknie link do witryny, z której pochodzi plik cookie. (W poprzednim przykładzie Strict
plik cookie zostałby uwzględniony, gdy użytkownik kliknie link do cats.example
). Lax
to wartość domyślna, jeśli w nagłówku Set-Cookie
nie ma atrybutu SameSite
.
Brak
Brak ograniczeń: plik cookie będzie dołączany do żądania niezależnie od tego, czy jest ono wysyłane do innej witryny. W przypadku SameSite=None
plik cookie musi też mieć atrybut Secure
.
Podzielona na partycje
Ten atrybut umożliwia włączenie plików cookie w partycjonowanej pamięci z osobnym „słoikiem na pliki cookie” dla każdej witryny najwyższego poziomu. Plik cookie jest podwójnie kluczowany przez witrynę najwyższego poziomu i domenę, która go ustawia.
Załóżmy na przykład, że witryna A i witryna B zawierają element iframe z witryny C. Plik cookie z partycją ustawiony przez element iframe w witrynie A nie jest dostępny dla elementu iframe w witrynie B: plik cookie AC jest oddzielony od pliku cookie BC.

Pliki cookie z atrybutem Partitioned
są nazywane CHIPS (Cookies Having Independent Partitioned State).
Oddzielone pliki cookie muszą mieć atrybut Secure
.
Więcej informacji: Cookies Having Independent Partitioned State (Pliki cookie z niezależnym stanem partycjonowanym).
Wygasa i Max-Age
Możesz określić Expires
datę i godzinę lub Max-Age
w sekundach, po których plik cookie ma zostać usunięty i nie będzie już wysyłany. Na przykład:
Set-Cookie:cat=tabby; Expires=Tue, 31 Dec 2999 23:59:59 GMT;
Set-Cookie:cat=tabby; Max-Age=86400
Jeśli nie określisz atrybutu Max-Age
ani Expires
, plik cookie zostanie usunięty po zakończeniu bieżącej sesji. Ten rodzaj pliku cookie jest czasami nazywany plikiem cookie sesji.
Domena
Jeśli nagłówek Set-Cookie
ma atrybut Domain
, plik cookie będzie dołączany do żądań wysyłanych do określonej domeny i jej subdomen.
Jeśli nagłówek Set-Cookie
nie ma atrybutu Domain
, plik cookie nie będzie dołączany do żądań wysyłanych do subdomen.
Innymi słowy, uwzględnienie atrybutu Domain
ogranicza ograniczenia domeny.
Na przykład w przypadku odpowiedzi z witryny cats.example
:
Set-Cookie:cat=tabby
Plik cookie będzie dołączany tylko do żądań wysyłanych docats.example
Set-Cookie:cat=tabby; Domain=cats.example
Plik cookie będzie dołączany do żądań wysyłanych docats.example
, a także do żądań zasobów w subdomenach, takich jakfluffy.cats.example
czyuser.assets.cats.example
.
Ścieżka
Jeśli atrybut Path
jest uwzględniony w nagłówku odpowiedzi Set-Cookie
, ustawiony plik cookie będzie uwzględniany tylko w żądaniach wysyłanych do adresów URL (w witrynie, która ustawiła plik cookie!) zgodnych z wartością Path
.
Na przykład:
Set-Cookie:cat=tabby; Path=/articles
Plik cookie zostanie uwzględniony w przypadku żądania dowolnej ścieżki adresu URL, która zaczyna się od/articles
:
✅https://cats.example/articles/tabby/index.html
✅https://cats.example/articles/breeds/tabby/index.html
❎https://cats.example/images/tabby.jpg
❎https://cats.example/en/articles/tabby/index.html
Set-Cookie:cat=tabby; Path=/
Wszystkie żądania wysyłane do dowolnego adresu URL w witrynie będą zawierać ten plik cookie.
Jeśli nagłówek odpowiedzi Set-Cookie
nie ma wartości Path
, plik cookie będzie dołączany tylko do żądań w tym samym katalogu. Załóżmy na przykład, że w odpowiedzi na żądanie cats.example/images/tabby.jpg.
ustawiany jest plik cookie cat=tabby
. Jeśli nie ustawiono Path
, plik cookie będzie uwzględniany tylko w żądaniach plików w katalogu cats.example/images
.
Przykłady
- 1pc.glitch.me: demonstracja własnych plików cookie
- 3pc.glitch.me: prezentacja plików cookie innych firm
Narzędzia
- Wyświetlanie, dodawanie, edytowanie i usuwanie plików cookie w Narzędziach deweloperskich w Chrome
- Privacy Sandbox Analysis Tool
Więcej informacji
- Przepisy na własne pliki cookie
- Co to są pliki cookie?
- Co to są pliki cookie innych firm?
- Żądanie i odpowiedź HTTP
- Narzędzia do obsługi plików cookie
- Wersje demonstracyjne plików cookie
- Korzystanie z plików cookie HTTP
- Objaśnienie plików cookie SameSite
- OWASP: Cookies