Udostępnij za pośrednictwem


Pliki cookie HTTP

Pliki cookie HTTP zapewniają serwerowi mechanizm przechowywania i pobierania informacji o stanie w systemie aplikacji klienckiej. Ten mechanizm umożliwia aplikacjom internetowym przechowywanie informacji o wybranych elementach, preferencjach użytkownika, informacjach o rejestracji i innych informacjach, które można pobrać później.

Istnieją dwa nagłówki, Set-Cookie i Cookie, które są powiązane z plikami cookie. Nagłówek Set-Cookie jest wysyłany przez serwer w odpowiedzi na żądanie HTTP, które służy do tworzenia pliku cookie w systemie użytkownika. Nagłówek pliku cookie jest dołączany przez aplikację kliencką z żądaniem HTTP wysyłanym do serwera, jeśli istnieje plik cookie, który ma zgodną domenę i ścieżkę.

Nagłówek odpowiedzi Set-Cookie używa następującego formatu:

Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]

Co najmniej jedna sekwencja ciągów (oddzielona średnikami) zgodna ze wzorcem nazwa=wartości musi być uwzględniona w nagłówku odpowiedzi Set-Cookie. Serwer może używać tych sekwencji ciągów do przechowywania danych w systemie klienta.

Data wygaśnięcia jest ustawiana przy użyciu formatu wygasa =data, gdzie data to data wygaśnięcia w greenwich Mean Time (GMT). Jeśli data wygaśnięcia nie zostanie ustawiona, plik cookie wygaśnie po zakończeniu sesji internetowej. W przeciwnym razie plik cookie jest utrwalany w pamięci podręcznej do daty wygaśnięcia. Data musi mieć następujący format:

DZIEŃ, DD-MMM-RRRRHH:MM:SS GMT

DZIEŃ

Dzień tygodnia (Sun, Mon, Tue, Wed, Thu, Fri, Sat).

DD

Dzień w miesiącu (np. 01 dla pierwszego dnia miesiąca).

mmm

Trzyliterowy skrót miesiąca (Jan, Luty, Mar, Kwiecień, Maj, Jun, Jul, Sie, Sep, Październik, Listopad, Grudzień).

RRRR

Rok.

HH

Wartość godziny w czasie wojskowym (na przykład 22 to 10:00).

mm

Wartość minuty.

SS

Druga wartość.

Określenie nazwy domeny, przy użyciu domeny wzorca =domain_name, jest opcjonalne dla trwałych plików cookie i służy do wskazania końca domeny, dla której plik cookie jest prawidłowy. Pliki cookie sesji określające domenę są odrzucane. Jeśli określona nazwa domeny kończy się zgodnie z żądaniem, plik cookie próbuje dopasować ścieżkę, aby określić, czy plik cookie ma zostać wysłany. Jeśli na przykład kończąca się nazwa domeny to .microsoft.com, żądania home.microsoft.com i support.microsoft.com będą sprawdzane, czy określony wzorzec jest zgodny z żądaniem. Nazwa domeny musi zawierać co najmniej dwa lub trzy kropki, aby zapobiec ustawieniu plików cookie dla szeroko używanych zakończeń nazw domen, takich jak .com, .edu i co.jp. Dozwolone nazwy domen będą podobne do .microsoft.com, .someschool.edu i .someserver.co.jp. Tylko hosty w określonej domenie mogą ustawić plik cookie dla domeny.

Ustawienie ścieżki przy użyciu ścieżki wzorca =some_pathjest opcjonalne i może służyć do określenia podzestawu adresów URL, dla których plik cookie jest prawidłowy. Jeśli zostanie określona ścieżka, plik cookie jest uznawany za prawidłowy dla wszystkich żądań pasujących do tej ścieżki. Jeśli na przykład określona ścieżka to /example, żądania ze ścieżkami /examplecode i /example/code.htm będą zgodne. Jeśli nie określono żadnej ścieżki, przyjmuje się, że ścieżka jest ścieżką zasobu skojarzonego z nagłówkiem Set-Cookie.

Plik cookie można również oznaczyć jako bezpieczny, co określa, że plik cookie może być wysyłany tylko do serwerów https.

Na koniec plik cookie można oznaczyć jako HttpOnly (atrybuty nie są uwzględniane wielkości liter), aby wskazać, że plik cookie nie jest skryptowy i nie powinien być ujawniany aplikacji klienckiej ze względów bezpieczeństwa. W Internecie systemu Windows oznacza to, że nie można pobrać pliku cookie za pośrednictwem funkcji InternetGetCookie.

Nagłówek pliku cookie jest dołączany do wszystkich żądań HTTP, które mają plik cookie, którego domena i ścieżka są zgodne z żądaniem. Nagłówek pliku cookie ma następujący format:

Cookie: <name>=<value> [;<name>=<value>]...

Co najmniej jedna sekwencja ciągów, używając formatu nazwa=wartości, zawierają informacje ustawione w pliku cookie.

Generowanie plików cookie

Istnieją trzy metody generowania plików cookie dla programu Microsoft Internet Explorer: używanie języka Microsoft JScript, korzystanie z funkcji WinINet i używanie skryptu CGI. Wszystkie metody muszą ustawić informacje zawarte w nagłówku Set-Cookie.

Używając dynamicznego modelu obiektów HTML (DHTML), pliki cookie można ustawić, wywołując właściwość cookie obiektu dokumentu, jak pokazano w poniższym przykładzie.

<SCRIPT language="JavaScript">
<!--
    document.cookie = "SomeValueName = Some_Value";
-->
</SCRIPT>

Pliki cookie można tworzyć za pomocą aplikacji InternetSetCookie funkcji. Aby uzyskać więcej informacji, zobacz Ustawianie pliku cookie.

Pliki cookie są generowane przez dołączenie nagłówka Set-Cookie w ramach skryptu CGI zawartego w odpowiedzi HTTP na żądanie.

Poniższy przykład to skrypt CGI zawierający nagłówek Set-Cookie przy użyciu narzędzia Perl.

print "Set-Cookie:Test=test_value; 
      expires=Sat, 01-Jan-2000 00:00:00 GMT;
      path=/;"

Nuta

Usługa WinINet nie obsługuje implementacji serwera. Ponadto nie należy jej używać z usługi. W przypadku implementacji serwera lub usług należy użyć usług HTTP systemu Microsoft Windows (WinHTTP).