Sesión en servicios web RESTful, ¿cómo funciona?

7

En un servicio web, ¿cómo sabe el servidor qué solicitud pertenece a qué sesión?

Sé que para una aplicación web, el servidor web inspecciona la cookie (o el parámetro de consulta sessonId en caso de que las cookies estén deshabilitadas) para saber a qué sesión está asociada la solicitud. Pero para una solicitud que proviene de un cliente de descanso, ¿cómo lo sabe el servidor?

    
pregunta dnang 28.10.2013 - 14:21

1 respuesta

8

Si realmente debe tener el manejo de la sesión en su API, entonces el cliente sería responsable de manejar el session_id y agregarlo a la URL si es necesario. Cómo exactamente manejar esto dependería de su pila de tecnología. Por ejemplo, Rails utiliza de forma predeterminada las cookies pero (si está habilitado) también aceptaría un parámetro _session_id como parte de la URL.

La información relevante normalmente almacenada en la cookie junto con el ID de sesión debe ser manejada por el servidor. En Rails, tendría que cambiar el almacenamiento de la sesión del almacenamiento de cookies a una de las opciones del servidor, como almacenarlo en la base de datos o con el ID de sesión como clave.

Pero realmente debería pensarlo dos veces si desea agregar esta función a su API. Ser apátrida mantendrá su API más simple y más fácil de mantener. Si es posible, es preferible dejar que el cliente se preocupe por el estado y enviar toda la información necesaria con cada solicitud. (como usar la autenticación básica HTTP en lugar de almacenar un usuario actual en una sesión).

    
respondido por el thorsten müller 28.10.2013 - 14:47

Lea otras preguntas en las etiquetas