node.js express-session是无状态的还是有状态的?

我实际上正在使用快速会话,我有一个问题:是node.js,还是更特殊的快速会话无状态或有状态?

实际上,当我们需要使用会话和节点时,我们使用req.session.foo,这意味着我们使用请求来获取会话

那么,服务器上是否存储了任何东西? 在这种情况下,为什么我们不能像在PHP中一样使用“全局variables”来访问值?

在另一种情况下,这意味着我们有一个无状态的服务器,并且sessionID值是否对应于令牌密钥?

你能帮我理解这个中间件吗?

感谢提前

有什么存储在服务器上

是的,这是会议的工作方式

为什么不能像在php中那样用“全局variables”来访问这个值

因为基于节点的HTTP服务器中的全局服务器是全局的而不是请求 。 你会有会议覆盖对方。

会话是关于在服务器内部存储关于特定客户端的信息,所以你不能再谈论严格的“无状态服务器”了。


PHP中的“全局variables”也是每个请求。

请注意,每个请求调用一次PHP代码,而Node代码继续运行并提供多个请求,因此您需要明确地接受特定请求的会话。

我假设你正在寻找的是一种存储一些关于当前用户的状态的方法,而不必使用服务器连接的存储机制(Redis,MySQL,不pipe)。

这正是cookie会话所要做的。 它以cookie的forms在客户端存储状态,还存储HMAC签名以validation客户端没有更改信息。 这使得客户端可以保持自己的状态,同时也确保客户端信息可以被信任。

而不是会话存储提供程序,您将需要一个秘密密钥(或多个密钥),用于签署会话cookie。

此外,我build议查看源代码,因为一些文档已经过时了一些。