<

Pozycjonowanie stron www i SEO / SEM

Katalog Interia, Google, Onet.

3. Optymalizacja budowy strony

Pomyśl jaka to oszczędność jeśli nie muszą pobieramy miesięcy nawet o więcej (dane na podstawą do efektywna formą promocja stron.

Ciasteczko

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

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

Spis treści

Zastosowanie

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

Zastosowanie ciasteczek do sond oraz liczników internetowych wygląda następująco – serwer może łatwo sprawdzić, czy z danego komputera oddano już głos albo też czy odwiedzono daną stronę, na tej podstawie wykonać odpowiednie operacje oraz 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) przedstawiony jest poniżej:

Schemat działania licznika internetowego wykluczającego przeładowania

Część serwisów wykorzystuje z ciasteczek jako sposobu przenoszenia pomiędzy stronami loginu oraz zaszyfrowanego hasła (rozwiązanie mniej bezpieczne) albo 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 wielokrotnie zalogowanie się, co bywa rozwiązane poprzez przechowywanie danych o zalogowaniu po stronie serwera, stale jednak użytkownik musi zostać w jakiś sposób zidentyfikowany (np. poprzez identyfikator sesji zawarty w adresie URL).

Specyfika działania

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

Dane zapisane w ciasteczkach posiadają osoba naprzemiennych ciągów nazwy oraz 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ć zaledwie serwer, który je wysłał. W danych po poleceniu Set-Cookie określone są:

  • nazwa oraz przypisaną jej wartość,
  • domena oraz ś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 zaledwie jego nazwa. Jeśli nie zostanie podana domena, do wartości zapisanych w ciasteczku dostęp będzie miał zaledwie 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. Posiadają one ustalony okres ważności, którego mechanizm wymusza serwer (zwykle nie da się opierać się 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. Pewne z nich dopuszczają 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 oraz inne nowoczesne przeglądarki.

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 wyłącznym wymaganym atrybutem przy wysyłaniu ciasteczka. Składa się z dowolnych znaków z wyjątkiem średników, przecinków, białych spacji oraz slashów (/). Jeśli zajdzie potrzeba ich użycia, najczęściej koduje się je w formacie odpowiednim dla URL (%XX), gdzie XX to kod ASCII znaku (np. %2F to zakodowana osoba slasha, a %20 – spacji).
expires=data
Atrybut expires informuje przeglądarkę o dacie wygaśnięcia danego ciasteczka. Zostanie ono usunięte z dysku, kiedy jego data ważności zostanie przekroczona. Jeśli nie podano daty wygaśnięcia, to ciasteczko zostanie usunięte po zakończeniu sesji.
Data musi być podana w następującym formacie (przykład): "Tuesday, 05-Nov-2004 08:30:09 GMT"
Format ten oparty jest na RFC 822, RFC 850, RFC 1036, oraz RFC 1123 z drobną zmianą odnośnie separatora daty – tu jest kreska, podana jest także strefa czasowa GMT[1].
domain=domena
Ten parametr wyznacza widoczność ciasteczka. W trakcie sprawdzania pliku na komputerze klienta zawierającego ciasteczka, przeglądarka porównuje zapisaną domenę z domeną serwera, do którego wysyła nagłówki. Przeglądarka wysyła wszystkie nie przeterminowane ciasteczka, których domena jest zawarta w domenie serwera (dodatkowo bywa sprawdzana ścieżka wywoływanego pliku oraz typ połączenia).
W specyfikacji Netscape'a[1] wprowadzone jest w tym zakresie dodatkowe ograniczenie. To znaczy domena zostanie dopasowana, jeśli zawiera minimum dwie kropki, albo minimum trzy – jeśli domena główna serwera nie jest jedną z domen specjalnych, czyli: "COM", "EDU", "NET", "ORG", "GOV", "MIL", "INT". Ma to zapobiegać ustawianiu domen typu ".com", ".edu", czy "va.us". Może to jednak powodować nieoczekiwane rezultaty, albowiem ustawienie dla ciasteczka domeny w formacie "domena.org" spowoduje, że ciasteczka będę widoczne tylko dla danej domeny, ale nie będą wysyłane do poddomen, czyli np. "forum.domena.org". Problem ten omija się ustawiając domenę ".domena.org"[2].
Domyślnie domain przyjmuje wartość domeny strony, z której wysłano żądanie zapisu ciasteczka.
path=ścieżka
Atrybut path jest podawany w celu ograniczenia widoczności ciasteczka do danej ścieżki dostępu do katalogu (liczy się ścieżka widoczna w URL-u pliku, a nie rzeczywiste położenie na dysku serwera). Wszystkie strony zawarte w tym katalogu oraz 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 "/wikipedia", "/_Cookie" itp.
Widoczność ciasteczka będzie niezależna od położenia pliku, jeśli podana była ścieżka "/". Natomiast domyślnie path przyjmuje wartość ścieżki do strony, z której wysłano żądanie zapisu ciasteczka.
secure
Ten parametr nie ma wartości. Jeśli zostanie podany, to ciasteczko będzie widoczne (wysłane) tylko wtedy kiedy połączenie będzie szyfrowane (obecnie możliwe przy użyciu protokołu HTTPS).

Przy pobieraniu zawartości strony z serwera, przeglądarka sprawdzi (jak podano powyżej) zapamiętane ciasteczka, w których parametry domeny oraz ścieżki zgadzają się z adresem URL strony. 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; ...

Właściwości

  • Ciasteczka o tej samej nazwie ale o innych ścieżkach będą nadpisywane.
  • W kwestii skasowania trzeba wysłać ciasteczko o takiej samej nazwie oraz czasie wygaśnięcia z minioną datą.
  • Możliwe jest wysyłanie kilku ciasteczek w jednym nagłówku (poprzez parę 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 albo 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 odmiana odpowiedzi np. 304 (nagłówek niezmieniony) czy 200 (nagłówek odmienny niż zapisany w cache'u).

Argumenty przeciw

Pewni ludzie są wrogami mechanizmu ciasteczek. Niechęć ta wynika z następujących przesłanek:

  • Mechanizm ten jest bardzo niedoskonałypotrzebne źródło. Jeśli nie skonfiguruje się poprawnie kont użytkowników w systemie, to tak naprawdę nie rozpoznaje on użytkownika, tylko jego przeglądarkę internetową. Powoduje to, że z jednej strony osoba korzystająca z kilku takich komputerów albo kilku przeglądarek na jednym komputerze nie jest rozpoznawana poprawnie; z drugiej strony jeśli parę osób wykorzystuje z tego samego komputera oraz 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 da się zainfekować komputera wirusem zaledwie z powodu włączonej obsługi ciasteczek.
  • Niechęć do ciasteczek bierze się także z niedostatecznych metod zarządzania nimi. Nowoczesne przeglądarki posiadają zaawansowane narzędzia, które w intuicyjny sposób pozwalają zarządzać informacjami zawartymi w ciasteczkach, lecz znaczna cząstka użytkowników wykorzystuje z Internet Explorera, w którym nie ma takich opcji (natomiast są programy firm trzecich, które to umożliwiają)
  • Mechanizm ciasteczek działa bez świadomości oraz wiedzy użytkownika, naruszając jego prywatność. Wielokrotnie stosowany jest w monitorowaniu zachowań oraz aktywności użytkowników, np. portale oraz sklepy internetowe potrafią gromadzić w ten sposób informacje o zainteresowaniach użytkowników oraz wyświetlać reklamy o treści nawiązującej do odwiedzanych stron. Co prawda przeważajaca ilość przeglądarek ma możliwość całkowitego blokowania ciasteczek albo włączenia opcji ostrzegającej każdorazowo o ich przesyłaniu, lecz ogromna przeważajaca ilość użytkowników albo w ogóle nie wie, co to jest ciasteczko, albo po krótkim czasie odblokowuje ten mechanizm, albowiem bez niego nie da się skorzystać z wielu serwisów.

Alternatywa dla ciasteczek – dane w adresie URL

Gdy użytkownik ma wyłączoną obsługę ciasteczek, wówczas dane trzeba przesłać w odmienny 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ę zaledwie metody GET — ze względu na łatwość jej użycia oraz na to, że metoda POST jest związana z reguły z formularzami.

Zastosowanie metody GET wiąże się jednak z koniecznością podania danych w adresie URL. Jest to jednak zadaniem kłopotliwym oraz niebezpiecznym, albowiem sprowadza się do konieczności dodawania odpowiednich parametrów do wszystkich wewnętrznych linków zawartych na stronach serwisu[3]. Jest to problematyczne 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ę oraz nie będąc świadomy zawartych w niej poufnych danych, wysłać komuś mailem.

Wiki letter w.svg Ta sekcja jest niekompletna. Jeśli możesz, rozbuduj ją.

Blokowanie ciasteczek

WiktionaryPl nodesc.svg
Sprawdź hasło ciasteczko w Wikisłowniku
Wikibooks-logo.svg
Sprawdź publikację na Wikibooks:
PHP – Obsługa ciastek

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

Przypisy

  1. 1,0 1,1 Specyfikacja ciasteczek w Nestscape
  2. phpBB FAQ – patrz pytanie 23: "I (or my users) cannot stay logged in to the forum!"
  3. Sesje PHP — Przekazywanie identyfikatora sesji

Blefaroplastyka czyli korekcja powiek | Biuro Nieruchomości Białystok - Aktywne pośrednictwo, Bezpieczne transakcje | Wakacje nad morzem | Lidl | krzesełko do karmienia