Descargo de responsabilidad: soy nuevo en la escuela de pensamiento REST, y estoy tratando de entenderlo.
Entonces, estoy leyendo esta página, Errores comunes de REST , y he descubierto que estoy completamente desconcertado porque la sección sobre sesiones es irrelevante. Esto es lo que dice la página:
No debería ser necesario que un cliente "inicie sesión" o "inicie una conexión". La autenticación HTTP se realiza automáticamente en cada mensaje. Las aplicaciones del cliente son consumidores de recursos, no servicios. Por lo tanto, no hay nada para iniciar sesión. Supongamos que está reservando un vuelo en un servicio web REST. No crea una nueva conexión de "sesión" al servicio. En su lugar, le pide al "objeto creador del itinerario" que le cree un nuevo itinerario. Puede comenzar a completar los espacios en blanco, pero luego obtener un componente totalmente diferente en otra parte de la web para completar algunos otros espacios en blanco. No hay sesión, por lo que no hay problema de migrar el estado de la sesión entre clientes. Tampoco hay problema de "afinidad de sesión"
De acuerdo, entiendo que la autenticación HTTP se realiza automáticamente en cada mensaje, pero ¿cómo? ¿Se envía el nombre de usuario / contraseña con cada solicitud? ¿Eso no solo aumenta el área de superficie de ataque? Siento que me falta parte del rompecabezas.
Sería malo tener un servicio REST, por ejemplo, /session
que acepte una solicitud GET, donde pasaría un nombre de usuario / contraseña como parte de la solicitud, y devuelva un token de sesión si la autenticación fue exitosa, eso podría ser entonces pasó junto con las solicitudes posteriores? ¿Tiene sentido desde el punto de vista REST, o es que falta el punto?