session和cookie

express-session()

定义:

  • session()是一个中间件函数。

    • 用于创建一个session对象
    • session对象用于管理HTTP状态
  • 注意session数据在cookie中只存储session ID。

  • session数据存储在服务器端。

  • cookie存储在浏览器端。

  • cookie什么时候存储在浏览器端?

    • 用户第一次发起请求
    • 当服务器区第一次做出响应的时候,服务器通过session在用户
    • 用户以后的每次请求都会携带cookie

语法:

session({options})
session({选项对象})

session({
  secret: 'string', //密要
  cookie: { //安插用户浏览器中的后门(键值对)
    path: '/',
    httpOnly: true,
    secure: false,
    maxAge: null //使用毫秒数设置cookie的有效期 5分钟或者1分钟
  },
  resave:false,
  saveUninitialized:true
})

示例:

npm install express-session
const session = require('express-session')
app.use()

session 读:赛神

1.什么是session

  • session指HTTP客户端和服务端的会话。(浏览器 <==> 服务器)

2.Session的用途

  • 1.HTTP是无状态的
  • 2.Session用于处理HTTP通信的状态问题

3.Session和cookie的区别

  • 1.session存储服务器的内存里。cookie存储在客户端的浏览器里
  • 2.浏览器端的cookie是通过服务端session创建的

4.在服务端创建session的语法

app.use(session({
    secret:'任意字符串', //secret:用于创建sessionID(密钥),sessionID存储在浏览器端的cookie里
    cokkie:{
      maxAge:毫秒数, //maxAge:决定了cookie的有效期    
    },
    resave:布尔值, //当session发生变化时是否需要重新存储。建议false
    saveUninitialized:布尔值 //如果为完成初始化是否创建session,建议true
}))

5.express-session模块如何创建cookie?

  • app.use(session({})) 创建一个session对象,cookie是通过session对象创建的

6.记住一句话

  • 1.在服务端创建一个session,就在浏览器端植入了一个cookie
  • 2.浏览器端的cookie只存储sessionID,不存储任何其他数据
  • 3.sessionID是通过secret属性生成一个加密的随机的唯一的ID
  • 4.只要cookie植入完成,浏览器端发起的任何请求都会自动携带sessionID

7.所有的中间件函数都必须要执行next()函数:跳转到下一个中间件函数

8.req.session的用途是什么?

  • req.session用于向服务端的Session对象添加额外信息。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容