cookie与session
- cookie
- 浏览器在电脑硬盘中开辟的一块空间,主要供服务器端存储数据。
- cookie中的数据是以域名的形式进行区分的。
- cookie是服务端响应后才会存储,一开始客户端是没有cookie的,随着服务端的响应cookie被存储进指定位置
- cookie中的数据是有过期时间的,超过时间数据会被浏览器自动删除。
- 如果不设置过去时间,浏览器关闭,就会被删除
- 当客户端再次请求服务器端时,cookie中的数据会随着请求被自动发送到服务器端。
- 查看cookie
- 先访问指定网站,在此网站下打开控制台,即可查看到当前域名下的cookie
- 浏览器在电脑硬盘中开辟的一块空间,主要供服务器端存储数据。
- session
- 实际上就是一个对象,存储在服务器端的内存中,在session对象中也可以存储多条数据(在其下添加多个属性),每一条数据都有一个sessionid做为唯一标识。
- 当网站服务器重启,session对象就会失效
- cookie与session实现交互
- 1.确定用户信息后服务器端生成sessionid,并将其响应给客服端让其写入cookie中
- 2.当客户端再次请求时,会将cookie随请求一同发送,服务器端就会获取其中的sessionid验明身份,并对其响应指定内容
- express-session模块
- 在node.js中需要借助express-session实现session功能。
- express-session模块是express配套模块
- 使用require引入模块,返回一个session函数
- 使用session函数,就可以创建session对象了
- 并且session函数是express框架的中间键函数
- session函数会为请求对象下面添加一个属性(session),该属性值是一个对象,这个对象可以保存一些信息,并且session函数还会再先session属性对象中存储信息时生成sessionid,sessionid作为当前存储数据的唯一标识,然后将sessionid存储在客户端的cookie中
- session函数参数
- 对象
- 该对象含有一个属性 secret(密钥)
- 该属性用于加密信息,当向客户端存储信息时需要对其进行加密,当收到请求后还需要解密(解密自动完成),这样提高了数据的安全性
- 该对象含有一个属性 secret(密钥)
- 对象
- 删除session
- 语法
- Session.destroy(callback)
- 将销毁会话,并将取消设置req.session,一旦完成,callback将被调用。
- 语法
- 删除cookie
- 语法
- res.clearCookie('属性名')
- 语法