REST将如何处理这种互动?

REST将如何处理这种互动?,rest,Rest,我试图更好地理解REST(可能不是唯一的:)) 因此,假设客户机和服务器之间存在这种交互: client send login to SO. client sends create SO thread with a question regarding REST architecture. 显然,这两个操作之间存在一种状态。也就是说,在登录之前不能发布 REST将如何处理这个问题 让我困惑的是,它说REST应该是无状态的:使用一组统一的预定义无状态操作 那么,它在实践中会如何运作呢 附言 下面

我试图更好地理解REST(可能不是唯一的:))

因此,假设客户机和服务器之间存在这种交互:

client send login to SO.
client sends create SO thread with a question regarding REST architecture.
显然,这两个操作之间存在一种状态。也就是说,在登录之前不能发布

REST将如何处理这个问题

让我困惑的是,它说REST应该是无状态的:使用一组统一的预定义无状态操作

那么,它在实践中会如何运作呢

附言

下面是另一个例子:

client send question to SO
client send comment to the question from op 1.

状态介于1和2之间,因为在对其进行评论之前,您首先需要有一个问题。

当他们说REST应该是无状态的时,这意味着api调用的结果不应该因其前面的api调用而异。跨api调用保持状态会限制缓存,因此不被认为是RESTful的


换句话说,您应该随每个请求发送身份验证令牌(或可能更改响应的其他信息)。

无状态意味着客户端会话不会存储在服务器端。 会话信息可以存储在客户端,这样就不会依赖于服务器,任何客户端都可以调用服务器端的任何服务。因此,每次都需要通过的客户端状态。

在这里,您在服务器上的每个请求都是独立请求。

服务可以返回可用于后续调用的结果。状态将由调用方维护。这是操作1和2之间的状态。因此我的问题仍然是:如果调用之间没有状态,如何进行第二次调用?显然,您不能在登录之前发布。关键是您不应该存储特定于请求的用户会话和信息。客户端应该使用GET参数或请求头提供所有这些信息。您应该在每个请求中发送身份验证令牌(或信息)。您从何处获取该令牌?从第一个请求开始。这就是请求1和请求2之间的状态。@JeniaIvanov: