efektywnie serwis stworzony przez novem.pl
Edytuj tę stronę

Cookies

Z Efektywnie.com

Ciasteczka (ang. cookies) to niewielkie informacje tekstowe, wysyłane przez serwer WWW i zapisywane po stronie użytkownika (zazwyczaj na twardym dysku). Domyślne parametry ciasteczek pozwalają na odczytanie informacji w nich zawartych jedynie serwerowi, który je utworzył. Ciasteczka są stosowane najczęściej w przypadku liczników, sond, sklepów internetowych, stron wymagających logowania, reklam i do monitorowania aktywności odwiedzających.

Mechanizm ciasteczek został wymyślony przez byłego pracownika Netscape Communications – Lou Montulliego.

Spis treści

Zastosowanie

Ciasteczka mogą zawierać rozmaite rodzaje informacji o użytkowniku danej strony WWW i "historii" jego łączności z daną stroną (a właściwie serwerem). Zazwyczaj wykorzystywane są do automatycznego rozpoznawania danego użytkownika przez serwer, dzięki czemu może on wygenerować przeznaczoną dla niego stronę. Umożliwia to tworzenie spersonalizowanych serwisów WWW, obsługi logowania, "koszyków zakupowych" w internetowych sklepach itp.

Zastosowanie ciasteczek do sond i liczników internetowych wygląda następująco - serwer może łatwo sprawdzić, czy z danego komputera oddano już głos lub też czy odwiedzono daną stronę, na tej podstawie wykonać odpowiednie operacje i wygenerować dla użytkownika zindywidualizowaną treść strony.

Część serwisów korzysta z ciasteczek jako sposobu przenoszenia między stronami loginu i zaszyfrowanego hasła (rozwiązanie mniej bezpieczne), lub też spreparowanej informacji o zalogowaniu (rozwiązanie bezpieczne), dzięki czemu nie jest konieczne logowanie na każdej podstronie. Wyłączenie obsługi ciasteczek uniemożliwia często zalogowanie się, co może być rozwiązane poprzez przechowywanie danych o zalogowaniu po stronie serwera, zawsze jednak użytkownik musi zostać w jakiś sposób zidentyfikowany (np. poprzez identyfikator sesji zawarty w adresie URL).

Specyfika działania

Mechanizm ciasteczek został wprowadzony po to, by w bezstanowym protokole HTTP umożliwić odróżnienie osób odwiedzających dany serwis. Ciasteczka są informacjami zapisywanymi trwale lub tymczasowo na żądanie serwera na dysku użytkownika. Najczęściej przechowywane są w jednym pliku tekstowym lub binarnym.

Dane zapisane w ciasteczkach mają postać naprzemiennych ciągów nazwy i wartości odpowiadającej jej zmiennej. 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. Zapamiętane ciasteczko może najczęściej odczytać jedynie serwer, który je wysłał. W danych po poleceniu Set-Cookie określone są:

  • nazwa i przypisaną jej wartość,
  • domena i ścieżka dostępu, które są związane z przekazywanym ciasteczkiem,
  • czas ważności danego ciasteczka (po jego upłynięciu przeglądarka usunie je).

Do zapisania ciasteczka wymagana jest jedynie jego nazwa. Jeśli nie zostanie podana domena, do wartości zapisanych w ciasteczku dostęp będzie miał jedynie serwer, z którego wysłano żądanie zapisu. Niepodanie czasu ważności spowoduje usunięcie ciasteczka po zamknięciu przeglądarki. Ciasteczka, które wygasają po zakończonej sesji, zwane są ciasteczkami sesyjnymi. Mają one ustalony okres ważności, którego mechanizm wymusza serwer (zwykle nie można polegać bowiem na prawidłowości ustawienia zegara na komputerze z przeglądarką).

Działanie mechanizmu ciasteczek po stronie użytkownika zależy od konfiguracji jego przeglądarki. Niektóre z nich umożliwiają odmowę zapisu, inne pozwalają na ustawienie daty wygaśnięcia innej od tej deklarowanej w nagłówku HTTP. Zaawansowaną kontrolę nad zachowaniem ciasteczek posiadają m.in. Firefox, Opera i inne nowoczesne przeglądarki.

Właściwości

  • Ciasteczka o tej samej nazwie ale o innych ścieżkach będą nadpisywane.
  • W celu skasowania należy wysłać ciasteczko o takiej samej nazwie i czasie wygaśnięcia z minioną datą.
  • Możliwe jest wysyłanie kilku ciasteczek w jednym nagłówku (poprzez kilka atrybutów Set-Cookie).
  • Istnieją limity przy zapisywaniu ciasteczek na dysku (po ich przekroczeniu przeglądarka usuwa starsze ciasteczka).
    • maksymalna liczba ciasteczek: 300.
    • maksymalna wielkość ciasteczka: 4 kilobajty.
    • maksymalna liczba ciasteczek z jednego serwera lub z jednej ścieżki: 20.
  • Gdy jest zainstalowany serwer Proxy nagłówki Set-Cookie nie powinny być przechowywane w pamięci proxy.
  • Jeżeli serwer Proxy dostanie odpowiedź z nagłówkiem zawierającym Set-Cookie powinien go przekazać do klienta bez względu na rodzaj odpowiedzi np. 304 (nagłówek niezmieniony) czy 200 (nagłówek inny niż zapisany w cache'u).

Alternatywa dla ciasteczek - dane w adresie URL

Gdy użytkownik ma wyłączoną obsługę ciasteczek, wówczas dane należy przesłać w inny sposób. W ramach protokołu HTTP jest to możliwe przy użyciu metody GET bądź POST. W praktyce jednak używa się jedynie metody GET — ze względu na łatwość jej użycia oraz na to, że metoda POST jest związana głównie z formularzami.

Zastosowanie metody GET wiąże się jednak z koniecznością podania danych w adresie URL. Jest to jednak zadaniem kłopotliwym i niebezpiecznym, ponieważ sprowadza się do konieczności dodawania odpowiednich parametrów do wszystkich wewnętrznych linków zawartych na stronach serwisu. Jest to kłopotliwe ze względu na potencjalną ilość takich danych, a niebezpieczne ze względu na to, że użytkownik może np. chcieć zachować taką stronę i nie będąc świadomy zawartych w niej poufnych danych, wysłać komuś mailem.

Blokowanie ciasteczek

Wszystkie nowoczesne przeglądarki pozwalają na włączenie bądź wyłączenie mechanizmu ciasteczek (domyślnie zazwyczaj jest on włączony).


Źródło: "pl.wikipedia.org"