session - cookie 无状态 vs 有状态

标签 session stateless

我找到了这样的东西:

“有状态 - 跟踪先前存储的用于当前事务的信息。

无状态——每笔交易都像第一次完成一样执行。没有用于当前事务的先前存储的信息。

在纯粹的无状态环境中,您不需要此 session ID。每个请求都包含服务器需要处理的所有信息。但是许多应用程序需要维护状态以跟踪 session 是否经过身份验证以查看某些内容或跟踪用户正在做什么。您不想为每个请求通过网络发送用户凭据。”

我很困惑。因此,如果带有 cookie 的无状态 session 保持状态,则意味着:
带有 cookie 的无状态 session = session 有状态?

另一个认为。我发现无状态 session 是客户端 session 而有状态是服务器端 session 的信息。如果无状态 session 不维护 session ,我们如何讨论客户端 session ?

最佳答案

在纯粹的无状态环境中,您确实不需要 session 或 cookie。

session 和 cookie 都用于维护状态。唯一的问题是在哪里。 Cookie 维护客户端上的状态,而 session 维护服务器上的状态。

来自 Wikipedia: Representational state transfer

The session state can be transferred by the server to another service such as a database to maintain a persistent state for a period and allow authentication.



所以通常在无状态设计中,是的,客户端请求之间没有状态。
每个客户端请求都将有足够的信息来执行请求的操作。
但是,您仍然需要身份验证和/或授权,以便从请求 header 中识别出谁是客户端(通常)。

关于session - cookie 无状态 vs 有状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26705347/

相关文章:

php - 使用 PHP 在 $_SESSION 变量中存储多个值

java - 无状态 EJB 中的静态成员与实例成员

java - 无状态 bean 的行为类似于有状态 session bean - 为什么?

java - 如果 Wicket 链接到 CSS 样式表,为什么它会使页面有状态?

flutter - Flutter:在无状态小部件中,我收到 “The instance member ' xy',无法在初始化程序中对其进行访问。”在数组xy上使用长度时

php - AWS Flask session 不会从 PHP 请求中持久化

java - 使用 JDBC 和 Tomcat 的持久 session

java - EJB @Stateless bean 具有两个使用不同方法的客户端并且 poolsize = 1

PHP session : SESSION Variables Automatically Reset after Unserialize()

javascript - 评估 : odd session management in web-based application