根据REST(REpresentational “State” Transfer)体系结构,服务器不会在服务器端存储有关客户端会话的任何状态。这种限制称为无状态。从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。因此,会话状态完全保留在客户端上。客户端负责在客户端存储和处理所有与应用程序状态相关的信息。
它还意味着客户端负责在需要时将任何状态信息发送到服务器。服务器上不应存在任何_会话关联_或粘性会话。
无状态意味着每个HTTP请求都完全隔离。当客户端发出HTTP请求时,它包含服务器完成该请求所需的所有信息。服务器永远不会依赖先前请求的信息。如果该信息很重要,客户端将在此请求中再次发送该信息。
为了使客户端能够访问这些无状态API,服务器还必须包括客户端可能需要创建状态的每条信息。
要成为无状态,请不要存储客户端的身份验证/授权详细信息。为请求提供凭据。每个请求必须独立,不应受到过去同一客户端之前发生的对话的影响。
请不要在应用程序状态和资源状态之间混淆。两者都完全不同。
应用程序状态是服务器端数据,服务器存储该数据以识别传入的客户端请求,其先前的交互细节和当前上下文信息。
资源状态是服务器上任何时间点资源的当前状态 - 它与客户端和服务器之间的交互无关。这是作为API响应从服务器获得的响应。您将其称为资源表示。
REST无状态意味着在应用程序状态下自由。
使REST API无状态有一些非常显着的优点。
参考:罗伊T.菲尔丁对无状态
Powered by RESTful API 中文网 + with by 全栈开发网. 网站地图 按Ctrl+D试试 .