免责声明:我是REST思想流派的新手,我正在努力将自己的想法包扎起来。
因此,我正在阅读此页面Common REST Mistakes,我发现我对与会话无关的部分完全感到困惑。这就是页面上所说的:
客户端无需“登录”或“启动连接”。HTTP验证在每条消息上自动完成。客户端应用程序是资源而不是服务的使用者。因此,没有什么可登录的!假设您正在通过REST Web服务预订航班。您不会为服务创建新的“会话”连接。而是您要求“行程创建者对象”为您创建一个新的行程。您可以开始填充空白,然后在网络上的其他位置获取一些完全不同的组件来填充其他空白。没有会话,因此在客户端之间迁移会话状态没有问题。也没有“会话亲缘关系”的问题
好的,我知道每条消息都会自动完成HTTP身份验证-但是如何?用户名/密码是否随每个请求一起发送?那不是增加攻击表面积吗?我觉得我好像迷失了一部分。
有一个REST服务(例如)/session
接受GET请求是否会很糟糕,您将在其中传递用户名/密码作为请求的一部分,如果身份验证成功,则返回一个会话令牌,然后与后续请求一起传递?从REST的角度来看这是否有意义,还是缺少这一点?