cookie与session

  • cookie
  • 浏览器在电脑硬盘中开辟的一块空间,主要供服务器端存储数据。
  • cookie中的数据是以域名的形式进行区分的。
  • cookie是服务端响应后才会存储,一开始客户端是没有cookie的,随着服务端的响应cookie被存储进指定位置

nodejs环境 axios请求自定义cookie nodejs cookie session_session

  • cookie中的数据是有过期时间的,超过时间数据会被浏览器自动删除。
  • 如果不设置过去时间,浏览器关闭,就会被删除
  • 当客户端再次请求服务器端时,cookie中的数据会随着请求被自动发送到服务器端。

nodejs环境 axios请求自定义cookie nodejs cookie session_服务器端_02

  • 查看cookie
  • 先访问指定网站,在此网站下打开控制台,即可查看到当前域名下的cookie

nodejs环境 axios请求自定义cookie nodejs cookie session_nodejs_03

  • session
  • 实际上就是一个对象,存储在服务器端的内存中,在session对象中也可以存储多条数据(在其下添加多个属性),每一条数据都有一个sessionid做为唯一标识。
  • 当网站服务器重启,session对象就会失效
  • cookie与session实现交互
  • 1.确定用户信息后服务器端生成sessionid,并将其响应给客服端让其写入cookie中

nodejs环境 axios请求自定义cookie nodejs cookie session_cookie_04

  • 2.当客户端再次请求时,会将cookie随请求一同发送,服务器端就会获取其中的sessionid验明身份,并对其响应指定内容

nodejs环境 axios请求自定义cookie nodejs cookie session_cookie_05

  • express-session模块
  • 在node.js中需要借助express-session实现session功能。
  • express-session模块是express配套模块
  • 使用require引入模块,返回一个session函数
  • 使用session函数,就可以创建session对象了
  • 并且session函数是express框架的中间键函数

nodejs环境 axios请求自定义cookie nodejs cookie session_cookie_06

  • session函数会为请求对象下面添加一个属性(session),该属性值是一个对象,这个对象可以保存一些信息,并且session函数还会再先session属性对象中存储信息时生成sessionid,sessionid作为当前存储数据的唯一标识,然后将sessionid存储在客户端的cookie中
  • session函数参数
  • 对象
  • 该对象含有一个属性 secret(密钥)
  • 该属性用于加密信息,当向客户端存储信息时需要对其进行加密,当收到请求后还需要解密(解密自动完成),这样提高了数据的安全性
  • 删除session
  • 语法
  • Session.destroy(callback)
  • 将销毁会话,并将取消设置req.session,一旦完成,callback将被调用。
  • 删除cookie
  • 语法
  • res.clearCookie('属性名')