Express 会话可以在没有 cookie 的情况下运行吗?

Sye*_*ebe 5 cookies session node.js express

会话是服务器端对象,驻留在服务器上。每个会话都会有一个会话 ID。会话 ID 是服务器在特定用户访问(会话)期间分配给他的唯一编号。默认情况下,会话 ID 附加到 cookie,并且该 cookie 将在请求/响应期间从客户端共享到服务器(以及服务器到客户端)。服务器将根据从 cookie 中检索到的会话 ID 来识别会话。

所以我想知道 Express 会话是否可以无 cookie 运行?

jfr*_*d00 3

所以我想知道 Express 会话是否可以无 cookie 运行?

不可以。实际的快速会话模块仅适用于 cookie。它将会话 ID 存储在 cookie 中,以便来自该特定浏览器的下一页请求或 Ajax 请求将包含该 cookie,并且 express-session 可以查找与该会话 ID 相对应的适当服务器端会话对象。

可以创建一个不使用 cookie 的会话系统。这通常是通过将会话 ID 作为查询参数放入 URL 中来完成的,如下所示:

http://somedomain.com/somepath?sessionID=0823408234
Run Code Online (Sandbox Code Playgroud)

但是,以这种方式构建网站要麻烦得多,除非您使用的渲染系统可以为您修复所有链接(页面中希望保留会话的所有链接必须在查询参数中具有正确的会话 ID)它会抛出书签和许多其他问题。

但是,express-session 不会这样做。它需要一个cookie。