2011-04-08 14 views
34

Me gustaría saber dónde se guardan los datos de la sesión de PHP; ¿está en el navegador del cliente? o en el servidor?¿dónde se guarda la sesión?

Cuando desactivo las cookies en la configuración de mi navegador, PHP no puede guardar los datos de la sesión, pero en php.ini, puedo cambiar la ruta de guardado de la sesión.

¿Los datos de la sesión están almacenados en el servidor o en el navegador del cliente?

Respuesta

73

La sesión datos que lee y escribe usando $_SESSION se almacena en el lado del servidor, generalmente en archivos de texto en un directorio temporal. No se puede acceder desde afuera.

Lo que conecta una sesión a un navegador de cliente es la sesión ID, que generalmente se almacena en una cookie (consulte los comentarios para conocer las excepciones a esa regla). Este ID es, y debe ser, lo único sobre su sesión que se almacena en el lado del cliente.

Si elimina la cookie en el navegador, la conexión a esa sesión se pierde, incluso si el archivo en el servidor continúa existiendo durante un tiempo.

La variable session.save_path influye en la ubicación en el servidor donde se almacenan los datos de la sesión. Si no es el administrador del servidor, generalmente no es necesario cambiarlo.

+5

Si las cookies están deshabilitadas, la ID de sesión se agrega a todas las solicitudes de página. – Martijn

+2

@Martijn Ese no es el comportamiento predeterminado de la sesión. Esto necesita un poco más de código para hacer en su lado –

+1

Correcto, y si las cookies no están disponibles, la ID de la sesión se pasa a través de URL y entradas de formularios ocultos. Esto es manejado automáticamente por PHP. Ver http://www.php.net/manual/en/session.idpassing.php – Capsule

4

Ambas, la sesión en el cliente (navegador) se guarda como una cookie. Esta cookie hace referencia a una sesión que también reside en el servidor.

10

¡Son las dos! Una sesión guarda la información de la sesión real en el servidor, pero le da una cookie de identificación al cliente para saber qué sesión pertenece a cada cliente. La información en la cookie en sí no tiene ningún valor, pero permite que el servidor identifique al cliente y use la información de la sesión real.

1

Se almacena en el lado del servidor para mantener la seguridad; pero también se pueden almacenar cookies adicionales en el lado del cliente.

1

Blockquote "¿Los datos de la sesión están almacenados en el servidor o en el navegador del cliente?"

Me hace pensar en un sistema de aparcacoches. El valet (servidor) guarda su automóvil (datos de la sesión), pero le da un ticket (identificación de la sesión) para colgar, lo que demuestra que el automóvil es suyo cuando necesita acceder a él. Si pierde su boleto (borrando su caché o cerrando el navegador), su automóvil (datos de la sesión) ya se ha ido, ya que no puede probar que ya es su automóvil.

Bien, es solo una analogía ... y se descompone rápidamente. P.ej. en realidad no posee la información de su sesión como lo hace con su automóvil. Y no puedes alejarlo.

Cuestiones relacionadas