什么是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的有效性 来判断用户是否登录

言简意赅的这张图说明一切

clipboard.png


HappyCodingTop
526 声望847 粉丝

Talk is cheap, show the code!!