Ciasteczka (formalnie HTTP Cookie, w skrócie ang. cookie, tłumaczone czasem jako plik cookie) – mały fragment tekstu, który serwis internetowy wysyła do przeglądarki i który przeglądarka wysyła z powrotem przy następnych wejściach na witrynę. Używane jest głównie do utrzymywania sesji np. poprzez wygenerowanie i odesłanie tymczasowego identyfikatora po logowaniu. Może być jednak wykorzystywane szerzej poprzez zapamiętanie dowolnych danych, które można zakodować jako ciąg znaków. Dzięki temu użytkownik nie musi wpisywać tych samych informacji za każdym razem, gdy powróci na tę stronę lub przejdzie z jednej strony na inną.

Zabezpieczenia przeglądarek pozwalają na odczyt ciasteczek jedynie z domeny, na której zostały utworzone, lub domen niższego poziomu. Czyli ciasteczko ustawione na witrynie w domenie „wikipedia.org” nie zostanie wysłane do „przykład.org”, ale może zostać wysłane do „pl.wikipedia.org”. Witryna ustawiająca ciasteczko może dodatkowo określić opcje ciasteczka m.in. kiedy ono wygaśnie (np. po zamknięciu przeglądarki lub o określonej godzinie, określonego dnia), czy jest dostępne tylko poprzez zabezpieczony protokół (HTTPS) oraz czy ma być dostępne dla skryptów uruchamianych w przeglądarce (typowo JavaScript).

Mechanizm ciasteczek został wymyślony przez byłego pracownika Netscape Communications – Lou Montulliego, a ustandaryzowany w ramach RFC2109 we współpracy z Davidem M. Kristolem w 1997 roku[6]. Bieżący standard opisuje dokument RFC6265 z 2011 roku.

Zastosowanie
Ciasteczka różnych rodzajów są stosowane najczęściej po logowaniu do utrzymywania sesji. Mogą jednak przechowywać inne tymczasowe dane jak stan elementów na stronie, czy historię odwiedzanych poprzednio stron (na danej witrynie). Umożliwia to tworzenie spersonalizowanych serwisów WWW (np. zapamiętanie stanu menu), obsługi logowania, prostych sond i liczników, „koszyków zakupowych” w internetowych sklepach, a także tworzenie statystyk użyteczności witryny oraz badanie preferencji użytkowników.

Zastosowanie cookies do sond i liczników internetowych może wyglądać następująco – serwer ustawia ciasteczko informujące, że z danego komputera oddano już głos lub też odwiedzono daną stronę. Na tej podstawie może wykonać odpowiednie operacje i wygenerować dla użytkownika zindywidualizowaną treść strony. Schematyczny sposób wykorzystywania ciasteczek przy obsłudze licznika internetowego, wykluczającego przeładowania (zwiększanie liczby odwiedzin przy odświeżeniu strony)

Dyrektywa UE – obowiązek informacyjny.
Mechanizmy zarządzania cookies w niektórych przeglądarkach są dosyć ubogie. Część przeglądarek posiada zaawansowane narzędzia, które pozwalają kontrolować, które witryny mogą przechowywać dane w ciasteczkach i pozwalają selektywnie je usuwać lub blokować. Niektóre pozwalają nawet na włączenie opcji ostrzegającej każdorazowo o ich przesyłaniu.

Także z tych powodów w 2012 roku Unia Europejska nałożyła na właścicieli witryn obowiązek informowania o tego typu praktykach (efektywnie regulacje weszły w życie 22 marca 2013 roku)[8][9]. Należy pamiętać, że ciasteczka nie są jedynym możliwym mechanizmem cichego obserwowania użytkowników i nie są to tylko dane przechowywane po stronie użytkownika – w bardzo podobny sposób można wykorzystywać informacje gromadzone po stronie serwera. Wbrew popularnej nazwie (ang. EU cookie law) dyrektywa unijna dotyczy wszystkich mechanizmów używanych do gromadzenia danych o użytkownikach, a nie tylko cookies.

W związku z europejskimi wytycznymi w 2013 roku znowelizowana została ustawa Prawo Telekomunikacyjne, która swoim art. 173 nakłada obowiązek informowania o przechowywaniu i wykorzystywaniu ciasteczek. Za nieprzestrzeganie tych zasad grozi kara finansowana, która może być nałożona przez prezesa Urzędu Komunikacji Elektronicznej[10]. Polska implementacja dyrektywy różni się od niektórych modeli zagranicznych brakiem wymogu wyraźnego wyrażenia zgody i akceptacji polityki cookies przez użytkownika końcowego. Ustawa pozostawia pole do braku takiej zgody poprzez zmianę ustawień przeglądarki. W praktyce więc stosowane na polskich stronach ostrzeżenia o ciasteczkach pełnią charakter wyłącznie informacyjny.

Sposób działania[edytuj | edytuj kod] Mechanizm cookie został wprowadzony po to, by w bezstanowym protokole HTTP umożliwić odróżnienie osób odwiedzających dany serwis. Cookies są informacjami zapisywanymi tymczasowo na żądanie serwera lub skryptu po stronie przeglądarki użytkownika. Sam sposób zapisu danych nie jest sformalizowany i – wbrew popularnej nazwie „plik cookie” – pojedyncze ciasteczko nie jest zapisywane w jednym pliku na dysku. Dla przykładu Internet Explorer przechowuje wszystkie ciasteczka z danej witryny w jednym pliku, ale już Firefox i Chrome przechowują ją w bazie danych SQLite.

Standaryzowany jest jednak sposób przesyłania ciasteczek[11]. Serwer WWW chcąc wysłać żądanie utworzenia ciasteczka na dysku użytkownika dołącza do nagłówka HTTP polecenie „Set-Cookie”, po którym następuje ciąg przekazywanych danych i opcji. Zapamiętane ciasteczko jest wysyłane jedynie do serwera z którego pochodzi, a który jest rozpoznawany przez przeglądarkę według nazwy domeny.

W danych po poleceniu Set-Cookie określone są:
nazwa i przypisana jej wartość (jedyne obowiązkowe),
czas ważności danego ciasteczka (po jego upłynięciu przeglądarka przestanie je wysyłać i powinna je usunąć z komputera użytkownika),
opcje ograniczenia widoczności ciasteczka (domena, ścieżka i poziom zabezpieczeń).
Do zapisania cookie wymagana jest jedynie jego nazwa i wartość. Niepodanie czasu ważności spowoduje wygaśnięcie ciasteczka po zamknięciu „sesji” (czyli zamknięciu przeglądarki). Ciasteczka, które wygasają po zakończonej sesji, zwane są ciasteczkami sesyjnymi. Pozostałe są „trwałe” w tym sensie, że po ponownym uruchomieniu przeglądarki są dalej dostępne. Nie ma jednak możliwości by ciasteczko nie wygasło nigdy – albo wygasają z sesją, albo wraz z przekroczeniem podanego czasu. Czas ważności może być jednak bardzo odległy – nawet paroletni. Ciasteczka nie są też w pełni trwałe dlatego, że użytkownik może je łatwo usunąć.

źródło: http://pl.wikipedia.org/wiki/HTTP_cookie