Cookies

ITpedia

Prostota protokołu HTTP w wielu przypadkach jest niewygodna. Ponieważ jest to protokół bezstanowy, prowadzenie transakcji z jego użyciem jest co najmniej nieporęczne: serwer prowadzący transakcje musiałby rejestrować w swojej bazie danych etapy transakcji dla każdego indywidualnego klienta. W przypadku WWW oznacza to konieczność rezerwacji bliżej nieokreślonej wielkości pamięci, ponieważ liczba różnych stacji klienckich w sieci WWW jest praktycznie nieograniczona.

Problem przedstawia się następująco: przeglądarka żąda od serwera konkretnego dokumentu; jeżeli dokument istnieje, a użytkownik jest uprawniony do jego otrzymania, to serwer jest zobowiązany dostarczyć ten dokument. Jednak gdy trzeba śledzić sesje przeglądarki, to pojawia się problem – brak możliwości kontroli sekwencji zleceń dla serwera webowego, generowanych przez pojedynczego użytkownika. Rozwiązaniem tak postawionego problemu jest serwerowa aplikacja monitorująca akcje użytkownika z jednej strony oraz możliwość umieszczania po stronie klienta informacji z nim związanej. Pomysł takiego rozwiązania pochodzi od firmy Netscape, a umieszczana informacja nosi nazwę cookies. Związek pomiędzy przeglądarką i serwerem istnieje jedynie na okres trwania transakcji, a każda transakcja jest niezależna.

Zanim wymyślono cookies, jedynym sposobem śledzenia sesji użytkownika było stosowanie ograniczonego mechanizmu zakrytych pól w formularzach HTML lub pewnego rodzaju "żetonów" zagnieżdżanych w URL, zarządzanych przez specjalny proces wspierający na serwerze. Jest to system dość skomplikowany i wrażliwy.

Firma Netscape podjęła ten problem w wydaniu 0.94 Navigatora, które zawierało mechanizm zwany persistent cookies. Zamiast używać danych przekazywanych tam i z powrotem pomiędzy przeglądarką i serwerem, jako metody na utrzymanie związków przyczynowo skutkowych pomiędzy poszczególnymi zleceniami, zdecydowano się udostępnić serwerowi możliwość magazynowania i odzyskiwanie niewielkich porcji danych (cookies) w systemie plików przeglądarki. Dane te mogą identyfikować użytkownika, sesję lub cokolwiek innego, co tylko wymyśli sobie projektant. Aby proces ten był transparentny dla użytkownika, Netscape zaimplementował rozszerzenie protokołu HTTP, polegające na możliwości umieszczenia w nagłówku protokołu wyróżnika składniowego "set cookie“.

Wielkość pamięci przeznaczonej dla cookies zależy od przeglądarki. Specyfikacja Netscape dopuszcza zapamiętanie przez przeglądarkę do 300 cookies, z których każde może osiągnąć do 4 kB.

W innych przeglądarkach i systemach operacyjnych cookies są magazynowane w różnych miejscach i w różny sposób. Internet Explorer Microsoftu składuje je w podkatalogu jako skróty.

Często wyrażana jest obawa, czy cookies są bezpieczne: czy mogą ujawniać programom serwera zawartość dysków lub inne istotne informacje? Odpowiedź brzmi - nie. Z katalogu klienta można pobierać tylko te dane, które zostały w nim umieszczone w postaci cookies - żadne inne dane nie są dostępne dla serwera tą metodą.

Formalny standard IETF dotyczący cookies nosi nazwę HTTP State Management Mechanism.

-
-