Logo Media Nauka

Facebook

Ciasteczka (cookies)

Mianem ciasteczka (cookie) określa się pakiet informacji, które serwer przekazuje przeglądarce internetowej podczas pierwszej wizyty, a także z których korzysta za każdym następnym razem. Przeglądarka zapisuje ciastko w postaci pliku tekstowego na dysku. Rozmiar ciasteczka jest niewielki - wynosi maksymalnie około 4KB.

Uwaga! Wspaniałą alternatywą dla cookies jest Storage, dużo prostszy w obsłudze, ale działający tylko na nowych przeglądarkach.

Do czego służy ciasteczko?

W cookie można przechowywać dane niezbędne do automatycznego zalogowania podczas kolejnych wizyt użytkownika, o ustawieniach preferowanych strony internetowej, koszyk zakupowy, liczniki i inne.

Za pomocą cookie nie można przenosić wirusów, uzyskać informacji o zawartości twardego dysku. Każde ciasteczko zawiera adres serwera, który je wysłał.

Cookies a prawo

Istnieje obowiązek informowania o stosowaniu plików cookies przez strony internetowe od dnia 22 marca 2013r. wynika z treści Ustawy Prawo Telekomunikacyjne. Wprowadzono do niej bowiem nowelizację (w dniu 16.11.2012r.), która nakłada obowiązek informowania internautów o stosowaniu w danej witrynie plików Cookie.

Art. 173 Ustawy Prawo Telekomunikacyjne ma następujące brzmienie:
1. Przechowywanie informacji lub uzyskiwanie dostępu do informacji już przechowywanej w telekomunikacyjnym urządzeniu końcowym abonenta lub użytkownika końcowego jest dozwolone, pod warunkiem że:

Przechowywanie informacji lub uzyskiwanie dostępu do informacji już przechowywanej w telekomunikacyjnym urządzeniu końcowym abonenta lub użytkownika końcowego jest dozwolone, pod warunkiem że:

1) abonent lub użytkownik końcowy zostanie uprzednio bezpośrednio poinformowany w sposób jednoznaczny, łatwy i zrozumiały, o:

a) celu przechowywania i uzyskiwania dostępu do tej informacji,

b) możliwości określenia przez niego warunków przechowywania lub uzyskiwania dostępu do tej informacji za pomocą ustawień oprogramowania zainstalowanego w wykorzystywanym przez niego telekomunikacyjnym urządzeniu końcowym lub konfiguracji usługi;

2) abonent lub użytkownik końcowy, po otrzymaniu informacji, o których mowa w pkt 1, wyrazi na to zgodę;

3) przechowywana informacja lub uzyskiwanie do niej dostępu nie powoduje zmian konfiguracyjnych w telekomunikacyjnym urządzeniu końcowym abonenta lub użytkownika końcowego i oprogramowaniu zainstalowanym w tym urządzeniu.

Treść ustawy znajduje się na stronie: http://isap.sejm.gov.pl (interesuje nas Art. 173)

Oznacza to, że wszystkie cookies instalowane na komputerze podlegają obowiązkowemu informowaniu użytkownika o ich stosowaniu, gdyż cookies są informacjami w rozumieniu tej Ustawy, a urządzeniem telekomunikacyjnym jest komputer lub inne urządzenie, z którego korzysta użytkownik naszej strony WWW.

Tworzenie ciasteczka

Tworzenie ciasteczka odbywa się w następujący sposób:

<script>
document.cookie = "NazwaCiasteczka=wartośćCiasteczka; [expires=datawygaśnięcia; domain=domenaStrony; path=sciezkaURL;]";
</script>

NazwaCiasteczka=wartośćCiasteczka - ta część deklaracji jest obowiązkowa. Podajemy tu nazwę pola i jego wartość. Na przykład mail=kowalskijan@gmail.com.

Poniższe parametry są opcjonalne:

expires - określa czas, po jakim przeglądarka ma usunąć ciasteczko, mierzona w milisekundach. Gdy nie zadeklarujemy daty wygaśnięcia, ciasteczko żyje jedynie do czasu trwania aktywnej sesji. Można podać konkretną datę w formacie GMT. Jak podać tę datę w dniach? Korzystamy ze wzoru: LiczbaDni*1000*60*60*24. Datę podajemy w formacie GMT, korzystając z metody toGMTString(). Podanie jako datę expires daty wcześniejszej niż aktualna spowoduje usuniecie ciasteczka.

domain - określa domenę ciasteczka. Gdy parametr ten nie zostanie ustawiony, przeglądarka automatycznie ustawi go jako nazwę serwera, które ustawiło ciasteczko. Najlepiej podać cały adres domeny.

path - ustawia ścieżkę, z której zostało utworzone ciasteczko. Zwykle pozostawiamy tu wartość "/".

Przykład 1 - Przykładowa funkcja tworzenia cookies

Poniższa funkcja możne być użyta do ustawienia ciasteczka. Parametr name oznacza nazwę ciasteczka, value - jego wartość, expires - datę wygaśnięcia podaną w liczbie miesięcy (30*24*60*60*1000). Jeśli chcesz użyć liczby dni zastosuj wzór - 24*60*60*1000, liczbę godzin - 24*60*60*1000 itd.

Funkcja encodeURI(); koduje znaki specjalne: spacje, * @ - _ + . / .

<script>
function setCookie(name, value, expires) {
var cookieStr = encodeURI(name) +"=";
if (typeof value != "undefined") {cookieStr += encodeURI(value);}
if (!expires) {expires = new Date();
expires.setTime(expires.getTime()+30*24*60*60*1000);}
cookieStr += "; expires="+ expires.toGMTString() +";";+"path=/"; document.cookie = cookieStr;
}; </script>
Pobierz


Odczyt ciasteczka

Aby odczytać cookie, korzystamy z obiektu document.cookie, który jest ciągiem znaków, składającym się z par nazwa=wartość. Kolejne ciasteczka są oddzielone od siebie znakami "; ". Po średniku jest spacja. Dla przykładu documen.cookie może mięć wartość: nazwaCiastka1=wartosc1; nazwaCiastka2=wartosc2;

Przykład 2 - Przykładowa funkcja odczytująca cookies

Poniższa funkcja odczytuje wartość ciasteczka o nazwie name, utworzonego za pomocą funkcji z przykładu 1. Funkcja decodeURI(); dekoduje znaki specjalne.

Co robi funkcja getCookie? Otacza ciasteczko znakami "; " i ";", szuka ciagu znaków "; nazwaCiasteczka=", czyli szuka po prostu naszego ciasteczka w ciagu znaków, a następnie wycina z niego (metoda slice) wartość ciasteczka, by w funkcji return ją zwrócić.

Zmienna indeks przechowuje najpierw pozycję naszej nazwy pola w ciasteczku (wyszukanej przez indexOf), a następnie pozycja zwiększa się o liczbę znaków nazwy ciasteczka oraz trzy znaki ";", " " i "=", by ustawić sie na początku wartości nazwy ciasteczka.

<script>
function getCookie(name) {
var str = '; '+ document.cookie +';';
var index = str.indexOf('; '+ encodeURI(name) +'=');
if (index != -1) {
index += name.length+3;
var value = str.slice(index, str.indexOf(';', index));
return decodeURI(value);
}
}; 
</script>
Pobierz


Aby wydzielić poszczególne cookie do zmiennej tablicowej możemy też skorzystać z funkcji split.

Usuwanie ciasteczka

Aby usunąć cookie wystarczy podać jako datę expires datę wcześniejsza niż aktualna.

Przykład 3 - Usuwanie cookie

W poniższym kodzie wykorzystano funkcję setCookie z przykładu 1.

Funkcja setTime(0) ustawia czas na 1 stycznia 1970 roku.

<script>
function deleteCookie(name){
var past = new Date();
past.setTime(0);
setCookie(name, null, past);
};
</script>
Pobierz

© medianauka.pl, 2016-12-23, ART-3347


Inne zagadnienia z tej lekcji

StorageStorage
Storage jest wygodniejszą alternatywą dla ciasteczek. Nie jest jednak obsługiwany przez stare wersje przeglądarek. Używanie storage jest trywialnie proste. Możemy zapisać i odczytać dane.
Okna w JavaScriptOkna w JavaScript
Okna w JavaScript. Większość przeglądarek domyślnie blokuje otwieranie nowych okien i zakładek z poziomu kodu. W niniejszym artykule omówię działanie okienek, właściwości i metody obiektu Window.
Formularze w JavaScriptFormularze w JavaScript
formularze w JavaScript. Jeżeli chcemy reagować na to, co użytkownik wpisuje w pola formularza na stronie internetowej, zanim cokolwiek wyśle na serwer, to JavaScript jest w tym momencie nieoceniony.
Funkcje wywoływane czasowo w JavaScriptFunkcje wywoływane czasowo w JavaScript
Funkcje wywoływane czasowo w JavaScript. JavaScript daje możliwość wywoływania własnej funkcji co określony czas lub po upływie określonego czasu. Jednostką czasu jest milisekunda. Wystarczy pamiętać, że 1 sekunda - 1000 milisekund.







Polecamy w naszym sklepie

laboratorium w szufladzie Modelarstwo i robotyka
Kolorowe skarpetki urodzinowe
Kolorowe skarpetki Kostka
kolorowe skarpetki góra lodowa
Mapa świata Puzzle
Niektóre treści nie są dostosowane do Twojego profilu. Jeżeli jesteś pełnoletni możesz wyrazić zgodę na przetwarzanie swoich danych osobowych. W ten sposób będziesz miał także wpływ na rozwój naszego serwisu.
© ® Media Nauka 2008-2020 r.