¿Usar sesiones en una API RESTful realmente viola RESTfulness? He visto muchas opiniones en cualquier dirección, pero no estoy convencido de que las sesiones sean RESTless . Desde mi punto de vista:
- la autenticación no está prohibida para RESTfulness (de lo contrario, habría poco uso en los servicios RESTful)
- la autenticación se realiza enviando un token de autenticación en la solicitud, generalmente el encabezado
- este token de autenticación debe obtenerse de alguna manera y puede revocarse, en cuyo caso debe renovarse
- el token de autenticación debe ser validado por el servidor (de lo contrario, no sería autenticación)
Entonces, ¿cómo violan las sesiones esto?
- del lado del cliente, las sesiones se realizan con cookies
- las cookies son simplemente un encabezado HTTP adicional
- Se puede obtener y revocar una cookie de sesión en cualquier momento
- las cookies de sesión pueden tener una vida útil infinita si es necesario
- el id de sesión (token de autenticación) se valida en el lado del servidor
Como tal, para el cliente, una cookie de sesión es exactamente la misma que cualquier otro mecanismo de autenticación basado en encabezado HTTP, excepto que usa el Cookie
encabezado en lugar del Authorization
u otro encabezado propietario. Si no hubo una sesión adjunta al valor del cookie en el lado del servidor, ¿por qué eso marcaría la diferencia? La implementación del lado del servidor no necesita preocupar al cliente siempre que el servidor se comporte RESTful. Como tal, las cookies por sí mismas no deberían hacer que una API RESTless , y las sesiones son simplemente cookies para el cliente.
¿Están equivocados mis supuestos? ¿Qué hace que las cookies de sesión sean RESTless ?