C
iasteczka (ang. cookies) to mechanizm zwi▒zany ze stronami internetowymi. Pocz▒tkowo ╢rodowisko sieciowe WWW by│o statyczne i nie pozwala│o na ┐adne dzia│ania interaktywne. Z czasem zosta│o to zmienione, a jednym z przyk│ad≤w mog▒ byµ wspomniane ciasteczka. O ich popularno╢ci ╢wiadczyµ mo┐e fakt, ┐e s▒ obs│ugiwane przez popularne przegl▒darki oraz wiΩkszo╢µ serwer≤w informacyjnych. Dlatego z pewno╢ci▒ ka┐dy, kto nawigowa│ po stronach internetowych, musia│ siΩ z nimi zetkn▒µ.
CzΩsto nie╢wiadomie, gdy┐ mechanizm ten dzia│a w tle - podobnie jak przy korzystaniu
z edytor≤w tekstu mo┐na spotkaµ opcjΩ automatycznego zapisu na dysk pisanego przez nas dokumentu. Operacja ta wykonuje siΩ w tle bez naszego udzia│u, a w jej wyniku na dysku zostaje utworzona aktualna wersja edytowanego tekstu.
Czym jest ciasteczko
Mechanizm ciasteczek jest ╢ci╢le zwi▒zany ze stronami WWW. Zostaje on uruchomiony w momencie odwo│ania siΩ do konkretnej strony, kt≤ra wykorzystuje cookies.
Samo ciasteczko to po prostu ma│y "kawa│ek" danych, kt≤re s▒ wysy│ane z serwera WWW do przegl▒darki w nag│≤wku ╢ci▒ganej przez nas strony (HTTP Response Header).
Gdy przegl▒darka wykryje takie ciasteczko,
to je odczytuje.
Standardowo ciasteczko sk│ada siΩ z kilku parametr≤w. Najwa┐niejszym jest przekazywana do nas zmienna i jej warto╢µ, kt≤ra jest dowolnym ci▒giem znak≤w. Opr≤cz tej informacji g│≤wnej wysy│ane s▒ parametry pomocnicze, kt≤re okre╢laj▒ datΩ wa┐no╢ci oraz ╝r≤d│o pochodzenia, czyli domenΩ
i ╢cie┐kΩ na serwerze. Je╢li ciasteczko jest wa┐ne, to przegl▒darka zapisuje go na lokalnym dysku (patrz ramka: "Ciasteczka
w przegl▒darkach"). Ma to miejsce w≤wczas, gdy czas ┐ycia ciasteczka jest d│u┐szy ni┐ czas, kt≤ry u┐ytkownik spΩdza na przegl▒daniu danej strony. Jednak nawet ju┐ zapisane ciasteczka po pewnym okre╢lonym czasie trac▒ wreszcie datΩ wa┐no╢ci.
W≤wczas zostaj▒ one usuniΩte. Mo┐e siΩ r≤wnie┐ zdarzyµ, ┐e przys│ane zostanie ciasteczko, kt≤rego nazwa ju┐ istnieje
- w≤wczas nowe zostanie zapisane zastΩpuj▒c stare. Rzecz jasna nie ka┐da odwiedzana przez nas strona jest wyposa┐ona w ciasteczka.
Ciasteczka mog▒ zawieraµ i przekazywaµ praktycznie dowolne dane. W│a╢nie owa dowolno╢µ spowodowa│a, ┐e mechanizm ten zyska│ sobie du┐▒ popularno╢µ. Z za│o┐enia ciasteczka traktowane s▒ jako dane, czyli ci▒g znak≤w. Zatem informacja przez nie przekazywana nie mo┐e byµ wykonana jako kod.
Nie ma w≤wczas zagro┐enia, ┐e zostanie do nas wys│any niepo┐▒dany program, a tym bardziej wirus. Takiego niebezpiecze±stwa nie ma. Mechanizm ciasteczek nie ma te┐ dostΩpu do informacji na naszym dysku w komputerze. Jedynie co mo┐e wykonaµ przegl▒darka, to zapisaµ pewne informacje zawarte
w ciasteczku, a nastΩpnie w razie potrzeby odczytaµ je ponownie. Ale i ten spos≤b dostΩpu ma powa┐ne ograniczenia. Podstawowe ograniczenie dotyczy rozmiaru ciasteczka, kt≤re nie mo┐e przekraczaµ 4 kB (wraz z na-g│≤wkiem). Pozosta│e ograniczenia dotycz▒ przestrzeni, w kt≤rej s▒ zapisywane ciasteczka. Przyk│adowo Navigator mo┐e zapamiΩtaµ do 300 ciasteczek z r≤┐nych ╝r≤de│. Ma to na celu ochronΩ dysku przed zapisaniem niezliczonej liczby ciasteczek, co przy upartym nawigowaniu po sieci by│oby mo┐liwe. Dla ka┐dego nastΩpnego ostatnio u┐ywane ciasteczko jest usuwane. Ponadto dla ka┐dej domeny mo┐na zapamiΩtaµ tylko 20 r≤┐nych ciasteczek.
Mechanizm cookies nie ogranicza siΩ do przekazywania informacji tylko w jedn▒ stronΩ. A to dlatego, ┐e przegl▒darka przed wys│aniem ┐▒dania ╢ci▒gniΩcia strony
(HTTP Request Header) do serwera WWW najpierw przegl▒da bazΩ ciasteczek,
kt≤re zgromadzi│a i w przypadku dopasowania kt≤rego╢ z nich wysy│a go w nag│≤wku wspomnianego ┐▒dania. Zatem mamy tu do czynienia z komunikacj▒ dwukierunkow▒.
Dzia│a to w ten spos≤b, ┐e gdy u┐ytkownik wybierze kt≤re╢ hiperpo│▒czenie do strony WWW (zwykle klikaj▒c w nie), to przegl▒darka por≤wna ten adres z baz▒ ciasteczek.
Je┐eli ma ciasteczko, kt≤rego domena
i ╢cie┐ka pasuj▒ do tego URL-a,
to wy╢le jego zawarto╢µ do serwera wraz
z ┐▒daniem przys│ania strony.
Odes│anie jest mo┐liwe dziΩki temu,
┐e w przychodz▒cych ciasteczkach wysy│ane s▒ informacje o serwerze, kt≤ry je utworzy│. Przegl▒darka zna zatem nazwΩ tego serwera oraz ╢cie┐kΩ, do kt≤rej odnosi siΩ zawarto╢µ ciasteczka. W rezultacie tylko ten serwer, kt≤ry utworzy│ ciasteczko, mo┐e z powrotem otrzymaµ jego zawarto╢µ. Natomiast inne serwery, ze wzglΩdu na to, ┐e adresy sieciowe s▒ unikalne, nie bΩd▒ mia│y dostΩpu do zapisanych w ciasteczkach danych.
Zastosowanie
Ciasteczka charakteryzuj▒ siΩ tym, ┐e za ich pomoc▒ mog▒ byµ przekazywane praktycznie dowolne tre╢ci informacyjne w postaci ci▒g≤w znak≤w. Mechanizm ten zdoby│
w zwi▒zku z tym du┐▒ popularno╢µ w zastosowaniach zwi▒zanych z usprawnianiem us│ug dostΩpnych na stronach WWW.
Jednym z najbardziej powszechnych zastosowa± ciasteczek s▒ elektroniczne zakupy
w sieci. W tym wypadku ciasteczka s▒ wykorzystywane przy realizacji "wirtualnego koszyka". Wybieraj▒c okre╢lony towar powodujemy przes│anie ciasteczka z jego identyfikatorem.
DziΩki temu na lokalnym dysku tworzona jest chwilowa pamiΩµ towar≤w,
kt≤re zamawiamy. I na tyle skuteczna,
┐e je╢li przerwiemy lub utracimy po│▒czenie
z witryn▒ sklepu, to mo┐emy
do niej powr≤ciµ bez utraty zam≤wionych
ju┐ towar≤w i sfinalizowaµ transakcjΩ.
Kolejnym wa┐nym zastosowaniem cookies
jest tworzenie interakcji u┐ytkownika
ze stronami WWW. DziΩki ciasteczkom
serwer mo┐e przygotowaµ okre╢lon▒
stronΩ zgodnie z wymaganiami u┐ytkownika.
Mo┐liwa jest r≤wnie┐ reakcja na okre╢lone dzia│ania, ze zmian▒ wygl▒du strony w│▒cznie. Opr≤cz tego ciasteczka pozwalaj▒ rozr≤┐niaµ kolejne wizyty w danym o╢rodku. Generalnie mo┐na powiedzieµ, ┐e ciasteczka s▒ bardzo u┐ytecznym narzΩdziem tworzenia zmiennych w ╢rodowisku WWW przekazywanych miΩdzy klientem a serwerem przy wykorzystaniu protoko│u HTTP.
Ciasteczka w przegl▒darkach
Popularne przegl▒darki Netscape Navigator oraz Microsoft Internet Explorer obs│uguj▒ mechanizm ciasteczek. Standardowe ustawienia tych przegl▒darek pozwalaj▒ bez przeszk≤d korzystaµ z tego mechanizmu i zapisywaµ przychodz▒ce ciasteczka na dysku lokalnym. Jednak u┐ytkownik ma mo┐liwo╢µ takiego ustawienia opcji, aby by│ ostrzegany przed wysy│anymi do niego ciasteczkami. W≤wczas przegl▒darka przechwytuje ciasteczko i pyta, czy je akceptujemy lub czy je odrzucamy.
PamiΩtajmy jednak o tym, ┐e je╢li nie zaakceptujemy ciasteczka, to mo┐e siΩ zdarzyµ,
┐e dana strona bΩdzie dzia│aµ niepoprawnie.
Obydwie przegl▒darki daj▒ mo┐liwo╢µ w│▒czenia funkcji ╢ledz▒cej aktywno╢µ ciasteczek i wy╢wietlaj▒cej odpowiednie komunikaty z ostrze┐eniami. Korzystaj▒c
z Navigtora nale┐y wybraµ w menu Options opcjΩ Network Preferences, a nastΩpnie zak│adkΩ Protocols. W okienku nale┐y zaznaczyµ opcjΩ Accepting a Cookie.
Korzystaj▒c z Internet Explorera nale┐y wybraµ z menu Widok opcjΩ Opcje,
a nastΩpnie zak│adkΩ Zaawansowane. W okienku nale┐y zaznaczyµ opcjΩ Ostrzegaj przed zaakceptowaniem "cookies". Po powy┐szych zabiegach w przypadku,
gdy serwer WWW spr≤buje pozostawiµ na dysku lokalnym informacjΩ w postaci ciasteczek, to na ekranie zostanie wy╢wietlony odpowiedni komunikat ostrzegawczy wraz z przyciskami, kt≤re pozwol▒ zadecydowaµ, czy zgadzamy siΩ na ich zapisanie. Przychodz▒ce ciasteczka zapisywane s▒ na dysku lokalnym. Navigator zapisuje ciasteczka w pliku cookie.txt, kt≤ry znajduje siΩ w g│≤wnym katalogu przegl▒darki;
w zbiorze tym znajduj▒ siΩ wszystkie informacje dotycz▒ce ciasteczek.
Z kolei Internet Explorer zapisuje dane o ciasteczkach w oddzielnym podkatalogu o nazwie Cookies w katalogu Windows.
Sk│adnia ciasteczek
Sk│adnia ciasteczka wysy│anego przez serwer WWW w nag│≤wku strony HTTP Response Header jest nastΩpuj▒ca (wielkimi literami podane s▒ fragmenty, kt≤re zale┐▒ od autora ciasteczka):
Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure
Znaczenia poszczeg≤lnych sk│adowych:
- NAME=VALUE - NAME jest nazw▒ ciasteczka, za╢ VALUE jego zawarto╢ci▒ informacyjn▒. Jest to g│≤wna czΩ╢µ ciasteczka. Obydwa parametry NAME i VALUE mog▒ byµ dowolnym tekstem wymy╢lonym przez jego autora.
- expires=DATE - DATE jest to data, po kt≤rej ciasteczko traci wa┐no╢µ (podawana w czasie GMT). Je╢li ta zmienna nie jest ustawiona, to w momencie zako±czenia sesji ciasteczko przestaje istnieµ.
- path=PATH - PAHT jest to ╢cie┐ka w domenie, do kt≤rej odnosi siΩ ciasteczko. Informuje ona przegl▒darkΩ, ┐eby wysy│aµ zawarto╢µ ciasteczka tylko do URL w tej ╢cie┐ce oraz ewentualnie w jej podkatalogach.
- domain=DOMAIN_NAME - DOMAIN_NAME to nazwa domeny, kt≤ra utworzy│a ciasteczko i do kt≤rej mo┐na je odes│aµ.
- secure - ten fragment sk│adni nak│ada warunek, aby przy korzystaniu z tego ciasteczka po│▒czenie by│o bezpieczne.
Je╢li teraz odwo│amy siΩ do jakiego╢ adresu URL to przegl▒darka sprawdzi, czy mo┐e do-pasowaµ do niego kt≤re╢ z zapisanych ciasteczek. Je╢li tak, to jego zawarto╢µ w postaci pary NAME=VALUE wysy│a w ┐▒daniu HTTP Request Header do serwera WWW:
Cookie: NAME1=VALUE1; NAME2=VALUE2; ...
Zasada dzia│ania mechanizmu ciasteczek
(c) Copyright LUPUS |