Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Ciasteczka (internet) - Wikipedia, wolna encyklopedia

Ciasteczka (internet)

Z Wikipedii

Ten artykuł wymaga dopracowania.
Należy w nim poprawić: podane w propozycji usunięcia medalu.
Więcej informacji co należy poprawić, być może znajdziesz w dyskusji tego artykułu lub na odpowiedniej stronie. W pracy nad artykułem należy korzystać z zaleceń edycyjnych. Po naprawieniu wszystkich błędów można usunąć tę wiadomość.
Możesz także przejrzeć pełną listę stron wymagających dopracowania.

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 czy stron wymagających logowania.

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

Spis treści

[edytuj] 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ć stronę ściśle dedykowaną. 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ę, i na tej podstawie wykonać odpowiednie operacje i zaserwować użytkownikowi dedykowaną stronę. Schematyczny sposób wykorzystywania ciasteczek przy obsłudze licznika internetowego, wykluczającego przeładowania (zwiększanie liczby odwiedzin przy odświeżeniu strony) przedstawiony jest poniżej:

Schemat działania licznika internetowego, wykluczającego przeładowania
Powiększ
Schemat działania licznika internetowego, wykluczającego przeładowania

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).

[edytuj] 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.

[edytuj] Składnia nagłówka HTTP

Nagłówek wysłany przez serwer ma następującą postać:

Set-Cookie: NAZWA=WARTOŚĆ; expires=DATA; path=ŚCIEŻKA; domain=DOMENA; secure

nazwa=wartość

Wartość ta jest jedynym wymaganym atrybutem przy wysyłaniu ciasteczka.
Składa się z dowolnych znaków z wyjątkiem średników, przecinków, białych spacji i slashów (/). Jeśli zajdzie potrzeba ich użycia, najczęściej koduje je się w formacie URL (%XX) - np. %2F to zakodowana postać slasha, podczas gdy %20 – spacji.

expires=data

Atrybut expires informuje przeglądarkę o dacie wygaśnięcia danego ciasteczka. Zostanie ono usunięte z dysku, gdy jego data ważności zostanie przekroczona.
Data jest sformatowana w następujący sposób (przykład):
Tuesday, 05-Nov-2004 08:30:09 GMT
Format ten oparty jest na RFC 822, RFC 850, RFC 1036, i RFC 1123 z drobną zmianą odnośnie separatora daty [1] - tu występuje kreska, podana jest również strefa czasowa GMT.
Jeśli nie zostanie podana data wygaśnięcia, ciasteczko zostanie usunięte po zakończeniu sesji.

domain=domena

W trakcie sprawdzania pliku cookies.txt, gdzie są przechowywane ciasteczka, przeglądarka porównuje zapisaną domenę z nazwą serwera, który wysyła żądanie zwrotu wartości ciasteczek w nagłówku. Jeśli domena zapisana w pliku cookies.txt zawiera się w adresie URL hosta, to przeglądarka wysyła mu zawartość ciasteczek (jeśli nie został podany parametr path) lub sprawdza poprawność ścieżki path (gdy została podana).
Parametr domain musi zawierać przynajmniej dwie kropki. Zapobiega to ustawianiu dostępu dla szerokich domen publicznych, jak .com czy .edu. Domyślnie przybierana wartość to adres serwera, który wygenerował ciasteczko.

path=ścieżka

Atrybut path jest podawany w celu weryfikacji, z jakiej ścieżki dostępu do katalogu obowiązuje zapisane ciasteczko. Wszystkie strony umieszczone w tym katalogu i jego podkatalogach będą mogły je wykorzystać. Należy zauważyć, że podanie parametru path w postaci "/wiki" pozwoli na odczytanie danych z ciasteczek plikom w katalogach np. /wikipedia czy też /wiki/Cookie.
Jeśli nie podano ścieżki, domyślnie przyjmuje ona wartość ścieżki strony, z której wysłano żądanie zapisu ciasteczka.

secure

Jeśli podano ten parametr, informacje z ciasteczka będą wysyłane tylko wtedy gdy użyty będzie bezpieczny protokół (obecnie oznacza to protokół HTTPS).



Przy pobieraniu zawartości strony z serwera, przeglądarka sprawdzi zapamiętane ciasteczka, w których parametry domeny i ścieżki zgadzają się z wpisanym adresem URL. Jeśli je znajdzie, dołącza je do nagłówka HTTP w postaci:

Cookie: nazwa_ciasteczka_1=wartosc_ciasteczka_1; nazwa_ciasteczka_2=wartosc_ciasteczka_2; ...

[edytuj] 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).

[edytuj] Argumenty przeciw

Menedżer ciasteczek Firefoksa
Powiększ
Menedżer ciasteczek Firefoksa

Niektórzy są wrogami mechanizmu ciasteczek. Niechęć ta wynika z następujących przesłanek:

  • Mechanizm ten jest bardzo niedoskonały. Tak naprawdę nie rozpoznaje on użytkownika, tylko jego przeglądarkę internetową. Powoduje to, że z jednej strony osoba korzystająca z kilku komputerów lub kilku przeglądarek na jednym komputerze nie jest rozpoznawana poprawnie; z drugiej strony jeśli kilka osób korzysta z tego samego komputera i przeglądarki, mechanizm nie może ich rozróżnić.
  • Do dzisiaj krążą plotki, jakoby ciasteczka były źródłem rozprzestrzeniania się wirusów. W rzeczywistości jest to niemożliwe - nie można zainfekować komputera wirusem jedynie z powodu włączonej obsługi ciasteczek.
  • Niechęć do ciasteczek bierze się również z niedostatecznych metod zarządzania nimi. Nowoczesne przeglądarki posiadają zaawansowane menedżery, które w intuicyjny sposób pozwalają zarządzać informacjami zawartymi w ciasteczkach, lecz znaczna część użytkowników korzysta z Internet Explorera, w którym nie ma takich opcji (aczkolwiek istnieją programy firm trzecich, które to umożliwiają)
  • Mechanizm ciasteczek działa bez świadomości i wiedzy użytkownika, naruszając jego prywatność. Często stosowany jest w monitorowaniu zachowań i aktywności użytkowników, np. portale i sklepy internetowe mogą gromadzić w ten sposób informacje o zainteresowaniach użytkowników i wyświetlać reklamy o treści nawiązującej do odwiedzanych stron. Co prawda większość przeglądarek ma możliwość całkowitego blokowania ciasteczek lub włączenia opcji ostrzegającej każdorazowo o ich przesyłaniu, lecz ogromna większość użytkowników albo w ogóle nie wie, co to jest ciasteczko, albo po krótkim czasie odblokowuje ten mechanizm, gdyż bez niego nie można skorzystać z wielu serwisów.

[edytuj] Alternatywa dla ciasteczek - dane w adresie URL

Stub sekcji Ta sekcja jest zalążkiem. Jeśli możesz, rozbuduj ją.

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 [1]. 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.

[edytuj] Blokowanie ciasteczek

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

[edytuj] Internet Explorer

Narzędzia > Opcje internetowe > Prywatność > Zaawansowane > Zastąp automatyczną obsługę plików cookie

  • Zaznaczenie opcji ZABLOKUJ powoduje wyłączenie akceptowania plików Cookie.
  • Narzędzia > Opcje internetowe > Ogólne > Usuń pliki cookie
    Usuwa wszystkie ciasteczka aktywnego użytkownika

[edytuj] Firefox

Narzędzia > Opcje > Prywatność

  • Ustawienia znajdują się w drzewie po rozwinięciu gałęzi "ciasteczka"
    • Menu WYJĄTKI pozwala ustawić wyjątki, dla których ciasteczka nie będą / będą blokowane
    • Kliknięcie na POKAŻ CIASTECZKA uruchamia menedżera ciasteczek

[edytuj] Opera

Narzędzia > Preferencje > Zaawansowane > Ciasteczka

  • Sterowanie obsługą ciasteczek odbywa się albo poprzez wyłączenie opcji akceptowania ciasteczek, albo też przez bardziej rozbudowany panel, dający bardziej szczegółową kontrolę blokowania lub odblokowywania poszczególnych rodzajów ciasteczek.
  • Udostępniony jest także mechanizm umożliwiający przeglądanie ciastek pochodzących z poszczególnych domen, kasowanie ciasteczek, bądź danych z danego serwera, jak też pozwalający na blokowanie ciasteczek z danej domeny.

[edytuj] Safari

Safari > Preferencje > Bezpieczeństwo

  • Wybierz jedną z opcji: "Zawsze akceptuj ciasteczka" lub "Nigdy nie akceptuj ciasteczek"

[edytuj] Funkcje zapisujące i pobierające wartości ciasteczek

[edytuj] PHP

  • Zapis odbywa się za pomocą funkcji setcookie(). Przyjmuje ona następujące parametry:
setcookie ( nazwa, wartość, data_ważności, ścieżka, domena, bezpieczeństwo)
  • nazwa (string) – nazwa ciasteczka,
  • wartość (string) – wartość ciasteczka,
  • data_wygaśnięcia (integer) – wyrażona liczbami całkowitymi liczba sekund od epoki Uniksa, oznaczająca moment do którego ciasteczko jest ważne,
  • ścieżka (string) – ścieżka dostępu, z której możliwy jest odczyt,
  • domena (string) – domena serwera ustawiającego ciasteczko,
  • bezpieczeństwo (boolean) – jeśli ustawione, to ciasteczko przesyłane jest za pomocą protokołu HTTPS.

Wywołanie funkcji setcookie() musi się odbyć przed wysłaniem jakichkolwiek treści do użytkownika. Fragmenty kodu PHP w dokumencie HTML opatrywane są znacznikami <?php i ?>.

  • Wartości ciasteczek automatycznie pobierane są jako zmienne przechowywane w tablicy $_COOKIE. Programista nie musi dbać o własne funkcje odczytu danych z ciasteczek.

[edytuj] ASP

  • Zapis odbywa się przy pomocy funkcji Response.Cookies() :
Response.Cookies("nazwa")("fname") = "nazwa"
Response.Cookies("nazwa")("lname") = "wartosc"
Response.Cookies("nazwa").Domain = "domena"
Response.Cookies("nazwa").Expires = data_wygasniecia
  • nazwa (string) – nazwa ciasteczka,
  • wartosc (string) – wartość ciasteczka,
  • domena (string) - domena serwera ustawiającego ciasteczko,
  • data_wygasniecia (integer) - podana w dniach, np. Date+365 oznacza rok ważności.

Wywołanie funkcji setcookie() musi się odbyć przed wysłaniem jakichkolwiek treści do użytkownika. Fragmenty kodu ASP opatrywane są znacznikami <% i %>.

  • Pobranie wartości ciasteczka odbywa się za pomocą funkcji Request.Cookies() :
Request.Cookies("nazwa")("fname") 
  • nazwa (string) – nazwa ciasteczka.

Można ją przypisać do zmiennej lub też na przykład wydrukować na ekranie funkcją Response.Write() .

[edytuj] Perl przez interfejs CGI

  • Zapis odbywa się za pomocą funkcji:
my $q=NEW CGI;
&setCookies($q);
my $nazwa_cookie = $q->cookie( -name => 'nazwa', -value => 'wartosc', -expires => 'data');
print $q->header( -cookie => [$nazwa_cookie]);
  • nazwa – nazwa ciasteczka,
  • wartosc – wartość ciasteczka,
  • data – data wygaśnięcia, np. +1m oznacza miesiąc żywotności.
  • Pobranie wartości ciasteczka
my $zmienna = $q->cookie( 'nazwa_ciasteczka' );

Przypisuje zmiennej zmienna wartość ciasteczka o nazwie nazwa_ciasteczka.

[edytuj] JavaScript

  • Zapis odbywa się za pomocą przypisania wartości document.cookie:
document.cookie = "nazwa=wartość; expires=data; path=ścieżka; domain=domena; secure=bezpieczeństwo;";
  • nazwa (string) – nazwa ciasteczka,
  • wartość (string) – wartość ciasteczka,
  • data (integer) – wyrażona liczbami całkowitymi liczba milisekund od epoki Uniksa, oznaczająca moment do którego ciasteczko jest ważne,
  • ścieżka (string) – ścieżka dostępu, z której możliwy jest odczyt,
  • domena (string) – domena serwera ustawiającego ciasteczko,
  • bezpieczeństwo (boolean) – ustawione oznacza żądanie przesyłania za pomocą protokołu HTTPS.

Skrypt z takim kodem powinno się umieścić w sekcji między znacznikami <head> a </head>.

  • Aby odczytać wartość ciasteczka należy napisać odpowiednią funkcję. Przykład:
function PobierzWartoscCookie(nazwa) {
 var dc = document.cookie;
 var prefix = nazwa + "=";
 // znalezienie początku wartości ciasteczka
 var begin = dc.indexOf("; " + prefix); 
 // jeśli dokument nie zawiera nazwy ciastka...
 if (begin == -1) { 
   begin = dc.indexOf(prefix);
   if (begin != 0) return null;
 // ...jeśli zawiera, to do indeksu dodajemy 2 (średnik i jedna spacja dają dwa znaki)
 } else 
   begin += 2;
 // teraz funkcja szuka indeksu wystąpienia następnego średnika po miejscu, 
 // w którym znaleziono nazwę ciastka
 var end = document.cookie.indexOf(";", begin);
 // jeśli nie ma więcej ciastek, to indeks końcowy równy jest długości pliku
 if (end == -1) 
   end = dc.length;
 // zwracamy fragment łańcucha, zawierający wartość ciastka
 return unescape(dc.substring(begin + prefix.length, end)); 
}

Funkcja ta również powinna być umieszczona w sekcji między znacznikami <head> a </head> .

[edytuj] Przypisy

  1. Sesje PHP — Przekazywanie identyfikatora sesji

[edytuj] Zobacz też

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com