【nodejs】session与cookie学习笔记(详细)

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(密钥)
            • 该属性用于加密信息,当向客户端存储信息时需要对其进行加密,当收到请求后还需要解密(解密自动完成),这样提高了数据的安全性
    • 删除session
      • 语法
        • Session.destroy(callback)
        • 将销毁会话,并将取消设置req.session,一旦完成,callback将被调用。
    • 删除cookie
      • 语法
        • res.clearCookie('属性名')

猜你喜欢

转载自blog.csdn.net/qq_43915356/article/details/105462131