Cookie和Session

披萨店有个活动,客人累计买三张披萨送一张披萨。店家发给客人一种有卡号的会员卡,店家也有自己的记录本。
店家是服务器端,客人是客户端,会员卡是cookie,记录本是session,卡号时sessionid

查看存储的cookie
检查—application—cookie
查看传输中的cookie
检查—Network—点一个Name—Headers—Request Headers—Cookie
cookie特点
1.是浏览器在硬盘上开辟的一块存储数据的空间
2.用域名进行区分
3.有过期时间,超过时间浏览器自动删除
4.客户端第一次请求服务器时,没有cookie,服务器响应客户端时,会把cookie给到客户端。客户端第二次发起请求时,cookie会随着请求一起给到服务器。

session
是一个对象,存储在服务器的内存中,session可以存储多条数据,每条数据都有一个标识sessionid。

举个栗子:
客户端登录,把账号密码(请求参数)给了服务器,服务器端验证账号密码是否正确,正确则表示可以登录,便生成一个sessionid,并且在session中存储用户的信息。服务器端把sessionid写入cookie中响应给客户端。重新打开页面时,客户端会把cookie给到服务器端,服务器端对比cookie中的sessionid跟session中的sessionid,如果一样,则表示还是登录状态,给他应有的数据。如果不一样,就不给他应有的数据,只给公共的数据。

使用
借助第三方模块 express-session

const session = require('express-session');
app.use(session({secret:'secret key'}));

1.导入第三方模块express-session
2.模块提供了一个方法 用第一句的session变量接收
3.调用这个方法就能在服务器中创建session对象了
4.这个第三方模块也是express框架的中间件函数,所以可以用app.use中间件拦截所有的请求,并将请求交给session变量去处理。所以写法上app.use包着session。
5.变量session做的事:为请求对象添加一个属性session,这个属性session是一个对象,这个对象可以在用户登录后保存用户信息,变量session会同时生成sessionid并存储到cookie当中。他也会读取sessionid并对比,相同后再找到用户信息。
6.在调用session方法时,会传递参数{secret:‘secret key’}。作用就是存储一个秘钥,秘钥的值是可以自定义的。向客户端存储cookie时,用它加密,服务器接收到cookie时,用它解密。客户端是不知道这个秘钥的,也就是说客户端可以查看cookie,但只是乱码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值