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认证的局限性: