其他的但不同的休息和会议

我阅读了这篇文章的优秀答案:如果REST应用程序应该是无状态的,那么您如何管理会话? 和几乎没有类似的帖子,但我仍然有一个具有REST风格的应用程序和会话的特定问题:

在用户每月只需登录一次就可以执行一次请求的应用程序中:对于RESTful应用程序,这是否可行?

我问这是因为在REST技术中禁止在服务器上保存会话状态,但是我可以在哪里保存客户端执行请求的最后日期,以便在检查上述条件(每月一次)后正面提供他的请求。 或者这对于REST技术来说是不可行的?

更新:

我首先接受了下面的答案,但是我记得我读过这个:

客户端到服务器的每个请求都必须包含理解请求所需的全部信息, 并且不能利用服务器上存储的任何上下文

从第一个链接也回答说:

客户端的应用程序状态不应该存储在服务器上

所以我的问题仍然是一样的。 请帮忙


客户的状态不是这里的问题,而是凭证。 凭证通过授权方案进行管理,授权方案通常以UUID的形式生成令牌,并与每个请求一起传递以识别客户端。 如果在SSL之上实施,这是非常安全的。

这个过程看起来像这样。

  • 客户端使用用户名+密码登录。
  • 服务器验证并返回一个uuid /令牌。
  • 客户端发出REST请求。
  • 服务器在请求中查看令牌
  • 服务器查找令牌并确定令牌是否过期。
  • 如果令牌过期,则服务器返回http授权错误(401)
  • 如果令牌未过期,服务器将在响应中返回数据。

  • 会话状态“无状态”指的不是那种信息。 这只意味着服务器无法存储客户端的当前状态。 没有任何东西禁止在服务器上存储上次连接日期。 例如,您也可以使用LocalStorage将其存储在客户端上。

    链接地址: http://www.djcxy.com/p/40999.html

    上一篇: an other but different about rest and sessions

    下一篇: Representational state transfer (REST) and Simple Object Access Protocol (SOAP)