Să presupunem că doriți să oferiți utilizatorului posibilitatea de a naviga în catalogul produselor dvs. și de a alege dintre ele produse plasate pe pagini diferite. Dar "din punct de vedere" al serverului, alegerea bunurilor pe o singură pagină nu este în niciun fel conectată cu acțiunile anterioare sau cu acțiunile ulterioare ale aceluiași utilizator. Cum să luați în considerare pozițiile alese de utilizator?
Pentru a rezolva această problemă, puteți utiliza o aplicație specială pe serverul Web, care ar trebui să monitorizeze acțiunile utilizatorului. Această idee este încorporată în tehnologia de identificare a elementelor, sau - în terminologia Netscape - "chifle" (cookie-uri). "Chiflele" pregătite de această companie au devenit deja standarde de facto. Dar, înainte de a ajunge să cunoaștem mai îndeaproape semnele de identificare, să înțelegem mai mult esența problemei.
Relația dintre software-ul client și server de pe World Wide Web este destul de simplă. Browserul se îndreaptă către server cu o solicitare: "Arătați-mi un astfel de document." Dacă documentul specificat există și utilizatorul are dreptul să îl acceseze, serverul execută cererea. Aici, în general, asta e tot. Sarcina de serviciu (non-informativă) în rețea este foarte scăzută, iar performanța este ridicată. Cu toate acestea, există un inconvenient: conexiunea dintre browser și server este păstrată numai în timpul tranzacțiilor și fiecare dintre ele nu este legată de celelalte. Tranzacțiile de acest tip sunt indicate de termenul idempotente (care poate fi tradus ca „egali“), iar serverul este considerat a nu avea nici un stat special (apatrid). Strict vorbind, inconvenientele apar numai atunci când devine necesar să se urmărească trecerea unei sesiuni de comunicare, adică secvența cererilor unui anumit utilizator către serverul Web.
Înainte să existe identificarea caracteristici, singura modalitate de a urmări acțiunile efectuate de vizitatori web-server a fost de a utiliza o capacitate destul de limitată „câmp invizibil“ în HTML-forme sau organizarea unui proces special de prelucrare a „token-uri“ încorporate în Resource Locator (URL). După cum înțelegeți, aceste metode sunt incomode și nu prea fiabile.
Ce fel de "chifle"?
Netscape și-a oferit soluția și le-a inclus în Navigator 0.94, numindu-i "cookie-urile persistente" (care înseamnă literalmente ceva asemănător cu "chiftele constante"). În loc de a transmite în mod continuu date din browser-ul la server și înapoi pentru a menține aceeași sesiune de rețea continuă, a decis Netscape, aveți nevoie pentru a furniza web-server pentru a fi plasat în browser-ul de sistem de fișiere, și apoi citește o cantitate mică de informații de proprietate ( „bun“). Datele stocate în „bun“, sau semne, poate, de exemplu, pentru a identifica sesiunea de utilizator (care este monitorizată în absența informațiilor despre utilizatorii săi pentru a efectua), sau orice alți parametri după cum doriți, administratorul serverului Web.
Pentru a face procesul de scriere și citire eticheta de stare „transparent“ pentru utilizator, Netscape a dezvoltat o extensie a protocolului HTTP, care este o parte integrantă a World Wide Web. În general vorbind, protocolul HTTP este destul de simplu. Când browserul accesează serverul cu o solicitare, acesta trimite în răspuns datele solicitate, care sunt precedate de un marcaj constând dintr-un set de etichete de service. Dacă serverul intenționează să pună un bun în software-ul clientului, eticheta "Set cookie" este inclusă în marcaj (pentru mai multe detalii, consultați bara laterală).
Stocarea elementelor de identificare
Specificația Netscape permite browserului să stocheze până la 300 de etichete, fiecare având o dimensiune de până la 4 KB. Există, de asemenea, o limită de 20 de etichete pe server sau domeniu. Specificația specifică faptul că serverele "nu trebuie să se bazeze pe posibilitatea depășirii limitei, dar dacă se întâmplă acest lucru, software-ul clientului trebuie să elimine cele mai vechi semne".
În browserul Netscape Navigator, un fișier cu etichete (cookies.txt) este stocat într-unul din subdirectoarele. Formatul acestui fișier este brevetat și, dacă nu doriți să stricați informațiile conținute în acesta, nu trebuie să încercați să îl editați (nu este furnizată nicio protecție a fișierului). Diferitele browsere și sisteme de operare stochează etichete în felul lor. De exemplu, în Navigator pentru Macintosh, acestea sunt scrise în folderul Navigator și în Internet Explorer într-un subdirector sub formă de macrocomenzi.
Procesul de identificare
Se pune întrebarea: de ce serverul ar trebui să identifice semnele? Lucrările schematice cu "chifle" pot fi reprezentate după cum urmează. De exemplu, pentru a organiza afișarea paginilor serverului Web în funcție de preferințele utilizatorului, serverul pune informațiile relevante în browser sub formă de etichete. De fiecare dată când browserul accesează serverul, serverul citește datele din "bun" și afișează paginile de care are nevoie utilizatorul.
Dar, de fapt, serverul nu citește aceste informații. Doar un browser, referindu-se la resursa de pe server într-un anumit domeniu, în special uita la dosarul cu semnele de identificare ale actualului „bun“ (t. E., cele pentru care perioada nu are termen de valabilitate expirat) pentru această resursă sau serverul corespunzător. Dacă există semne pentru acest server, browserul plasează marca HTTP_COOKIE, numele și data înregistrării caracteristice la începutul cererii. Aplicația de pe serverul Web citește automat aceste informații utilizând interfața CGI.
Standardizarea "bunurilor"
Astăzi, identificarea semnelor, sau "chifle", sunt de facto standard, dar ziua nu este departe când devin de drept. Acum Grupul de lucru Internet Engineering (IETF) este un proiect de standard pentru „bun“, care are nume foarte gravă „Mecanismul HTTP de management de stat“ (pentru detalii vezi. Portal.research.belllabs.com/et).
Când vorbim despre această tehnologie, se pune inevitabil o altă întrebare: de ce Netscape a chemat semnele de identificare "chifle"? Deși cu ajutorul lor putem să aruncăm o privire asupra modului în care utilizatorii folosesc serverul, misterul numelui însuși va rămâne probabil un mister pentru totdeauna. Reprezentanții Netscape susțin că în spatele lui "nimic special nu este ascuns". Aceasta este lumea tehnologiei computerizate moderne!
Rețeta pentru a face "chifle"
Marcajul "Set-Cookie" este după cum urmează:
Set-cookie: NAME = VALUE; expiră = DATE; cale = PATH; domain = DOMAIN_NAME; sigur
NAME și VALUE sunt orice variabile șir utilizate pentru a identifica utilizatorul. Variabilele nu pot conține punct și virgulă, virgule sau spații. Perechea NAME = VALUE este singurul element obligatoriu al marcajului.
Variabila DATE specifică data după care caracteristica ar trebui să fie ștearsă automat. Dacă data nu este specificată, atunci eticheta va exista numai până la sfârșitul sesiunii curente cu browser-ul Navigator.
Eticheta DOMAIN_NAME descrie numele domeniului căruia îi aparține. Dacă această etichetă nu este specificată, valoarea implicită este numele serverului care a creat eticheta de etichetă.
Eticheta "sigură" indică faptul că transferul caracteristicii pe server poate fi efectuat numai într-o formă criptată.
Trebuie avut în vedere faptul că mai multe semne pot fi "emise" sub o singură etichetă, dar în acest caz trebuie să se refere la diferite resurse (URL-uri) și să aibă diferite căi. În caz contrar, ultima caracteristică identică va fi instalată pe mașina client.