什么是 cookie,
用来存储客户端的一小段文本
是一门客户端的技术 因为 cookie 是存储在客户端浏览器中的
是为了实现 客户端与服务器端之间的状态的保持
cookie 技术,不安全,不要使用 cookie 存储敏感信息!比如登录状态和登录信息;
一些敏感的数据 应该存储在服务器端
cookie 的值从哪里来的
当你访问一个网站 这个网站的服务器代码会根据一些具体的业务 来确定是否返回 cookie
比如你登录之后 这个网站服务器就会给你响应 响应的内容 就会有 cookie cookie 的值是一段乱码文本
也就是所谓的 sessionId
当客户端接收到服务器返回的 cookie 就会把存到浏览器中
当下一次去访问的时候 就会自动的携带这个 cookie 值
cookie 默认在 浏览器页面关闭之后 就立即失效;如果想指定 cookie 的过期时间 需要 expires 属性实现
const expiresTime = new Date(Date.now()+3*1000).toUTCString()
res.writeHeader(200, {
“Content-Type”: ‘text/html;charset=utf8’,
“Set-Cookie”: [‘islogin=yes;expires =’+ expiresTime, ‘text=ok’]
})
cookie 的应用场景
1 对安全性要求不高
2 不需要存储大量的数据
3 主要应用场景,是用来做客户端与服务器之间的状态保持技术
cookie 与 session 的关系
session 是服务端的状态保存机制
cookie 是客户端的状态保存机制
当第一次访问服务器的时候 服务器会开辟一块空间用来存放用户的信息
每一个登录之后的用户信息 都会以 key value 格式记录在 session 中
同时服务器会把 sessionId(用户信息)存在 cookie 中 返回给访问的客户端
客户端就会把 sessionID 保存在本地的 cookie 中对应的网站记录下
下次访问的时候会携带这个 sessionId
服务器会验证这个 cookie 的有效性 来判断用户是否登录
言简意赅的这张图说明一切