Cookies 和Session认证机制

Cookies 和Session认证机制_第1张图片

cookie和session的关系是什么:

Cookie和Session都是Web开发中常用的技术,它们在用户登录、认证、跟踪等方面起着重要作用。

Cookie是在客户端(浏览器)保存数据的一种机制,通过在HTTP响应头中设置Set-Cookie字段,服务器可以让浏览器保存一些数据,下次请求时再发送给服务器。通常情况下,我们会使用Cookie来保存一些用户状态信息,例如用户ID、登录凭证、语言偏好等。

Session则是在服务端保存数据的一种机制,通常将一个随机生成的session ID存储在Cookie中,当用户发起请求时,服务器通过该session ID来查找对应的session数据,从而实现跨请求的数据共享。在一个session中,我们可以保存一些与用户相关的信息,例如购物车数据、用户配置等。

因此,可以说Cookie和Session是密切相关的,通常情况下,我们会使用Cookie来保存session ID,然后通过session ID来获取和修改session数据。同时,由于Cookie存在于浏览器中,不同的标签页或窗口之间也可以共享相同的Cookie,因此它可以被用来实现一些多页面之间的状态传递和同步。

express-session写session中间件

const session = require("express-session")
app.use(session({
    secret:"itheima",
    resave: false,
    saveUninitialized:true
}))

在 Express.js 框架中,express-session 是用于管理用户会话的中间件。

resave: false 表示会话不会在每次客户端请求时都保存,只有在会话数据发生更改时才会进行保存。这有助于减轻服务器负载并优化性能。

saveUninitialized: true 表示即使还没有向该会话添加任何数据,服务器也会创建一个会话。这在你想为匿名用户存储会话数据时非常有用,例如为刚访问你的网站而没有登录的用户存储购物车信息。如果设置为 false,则只有在添加数据时才会创建会话,这有助于节省服务器资源。

session认证的局限性:

Cookies 和Session认证机制_第2张图片

你可能感兴趣的:(java,前端,数据库)