Quina diferència hi ha entre les cookies i la sessió?


Resposta 1:

La més senzilla explicació possible ..

1> Sessions: són creades i gestionades pel servidor web (per exemple, Apache) - i aquestes sessions s’utilitzen per identificar i gestionar les sessions d’usuari vàlides (HTTP és sense estat per naturalesa!).

Una vegada que us inicieu la sessió en qualsevol aplicació web i que les sol·licituds de credibilitat (identificació d'usuari i contrasenya) donades siguin validades per l'aplicació, el servidor web associat inicia una sessió única exclusivament per a vosaltres. I és així com el servidor continua reconeixent el vostre després que les altres sol·licituds HTTP l’envieu al servidor web.

Finalment, bé les sessions es cronometren després d’una durada preestablerta (per exemple, 30 minuts) o bé es programen que caduquen, després d’un determinat període d’activitats o, finalment, s’acaba la sessió activa un cop finalitzada la sessió.

2> Les cookies són alguna cosa, que s’envien pels servidors web als navegadors (també coneguts clients) i normalment aquestes cookies resideixen en les màquines client (ordinadors) - durant el període de temps especificat (fins que caduca). Comprenen fitxers i dades conjunts petits

Les cookies s’utilitzen amb diverses finalitats. Un dels usos més habituals és controlar el patró de l’activitat de l’usuari (client) en un lloc web (qui ha enviat la galeta)

Igual que les sessions, les cookies també es poden programar perquè caduquin després d’una certa durada o en determinades circumstàncies.

Tots els llenguatges de programació del servidor, com ara PHP, proporcionen la infraestructura per gestionar el cicle de vida de les cookies i sessions.

Per obtenir més detalls, llegiu les pàgines de Wikipedia sobre Cookies HTTP i Sessió HTTP.


Resposta 2:

Una cookie és una petita quantitat de dades que el servidor web demana que guardi i inclogui amb futures sol·licituds al servidor web.

Una sessió és un magatzem de dades del servidor, normalment agrupats per usuaris, és a dir, cada usuari té el seu propi conjunt de dades de sessió.

Gairebé totes les sessions del servidor s’implementen mitjançant cookies. El servidor genera un número aleatori per identificar aquell navegador, generalment anomenat ID de sessió, i envia l'ID de sessió al navegador com a capçalera de galetes en una resposta web, i també l'emmagatzema al servidor en el mecanisme de sessió. Quan el navegador realitza una sol·licitud en el futur, inclou la galeta d'ID de sessió en la sol·licitud i el servidor utilitza l'ID de sessió per cercar les dades de sessió de l'usuari.

(L’API de servlet java té una característica per codificar l’ID de sessió als enllaços de qualsevol pàgina que enviïn a l’usuari, però sembla que s’utilitza rarament. Tots només fan servir cookies.)

Dos motius principals per als quals s’utilitzen sessions del costat del servidor són la seguretat i la mida de les dades.

És probable que la mida de les dades sigui menys important, però deixem-ho fora. Les cookies es limiten a la quantitat de dades que poden contenir, només 4096 bytes.

La seguretat també és un problema. Els navegadors envien de nou les dades de la galeta amb totes les sol·licituds que fan al servidor de la qual van rebre la galeta. Això vol dir que hi ha moltes oportunitats perquè la informació sigui interceptada.

Les cookies també s’utilitzen habitualment per als inicis de sessió del lloc web. Per motius de seguretat, l’inici de sessió generalment no conté (i absolutament no hauria de) contenir el nom d’usuari i la contrasenya reals de l’usuari. No hi ha cap manera fiable per a un servidor de garantir que una cookie determinada sigui eliminada de la memòria del navegador.

En canvi, els servidors utilitzen un enfocament similar a un ID de sessió, generalment anomenat testimoni d’autenticació. A continuació, quan l'usuari es tanca la sessió o els terminis de sessió, el servidor invalida el testimoni d'autenticació al magatzem de sessions del costat del servidor.

Per cert, el terme "cookie" és una analogia o un joc de paraules que fa referència a "cookies de fortuna".


Resposta 3:

Si bé l’altra resposta és majoritàriament correcta, voldria notar la veritable diferència: les cookies es troben al client i s’emmagatzemen al navegador, mentre que les sessions s’emmagatzemen al servidor web i només són del servidor.

L’altra resposta va ser correcta en el fet que un enllaça amb l’altra, però realment no s’explica per què. Sense cookies, les sessions bàsicament serien inútils perquè el servidor no reconeixeria el vostre navegador, ja que les cookies us identifiquen al servidor web (a més d’emmagatzemar qualsevol altra informació que el lloc desitgi). Desactiveu les cookies i veuràs com interromp les sessions i impedeix que funcionin correctament.