深入浅出cookie和session

前言

为什么需要session和cookie呢?
源于web的发展和变迁
1.web1.0时代,web强调的是资源的共享
2.web2.0时代,强调的是交互
交互意味着有多步操作,请求和请求之间是有依赖存在的,所以引入了cookie和session机制实现状态的记录。

特征

Session和cookie的特征:
session和cookie都是由服务器生成的,都是用来存储特定的值(键值对应)。
session是存储在服务器的,而cookie是会返回给客户端的
一般来说,SessionID会以类似于cookie的方式返回给客户端。
SessionID是服务器用来识别、操作存储session值的对象的
一般来说,在服务器端,session的存储方式有文件方式、数据库方式,sessionID就是用来识别这个文件的(文件名相关)、识别数据库的某一条记录。
sessionID并不是session值,知识用来表示session对象(就好比你的身份证号是来代表你这个人的)
客户端(浏览器)在发送请求的时候,会自动将存活、可用的cookie封装在请求头中和请求一起发送

生命周期

cookie和session都是有其生命周期的。
cookie的生命周期:一般来说,cookie的生命周期受到两个因素的影响
1.cookie自身的存活时间:是服务器生成cookie时去设定的。
2.客户端cookie的存活时间,是由客户端是否保留了cookie来决定的,对客户端自身有影响,对其它封包工具是没有影响的。
session的生命周期:因为session是保存在服务器端的,所以session的存活时间由服务器所设置的最大存活时间来决定。

栗子:
服务端代码
在这里插入图片描述
没有setcookie这两行代码,客户端怎么访问请求头中都不会带有cookie的。
加上这两行代码,客户端在第一次访问服务端的时候,在服务端响应给客户端的时候响应头中会有Set-Cookie:的字段。
在这里插入图片描述
然后客户端(不清除cookie)在此访问服务端的时候请求头中就会携带cookie(是客户端所有存活的cookie)
在这里插入图片描述

理解完了cookie,我们就可以用cookie存储在客户端的特性,去追踪服务器端的session,进而追踪用户的状态,而服务器端生成session对应的cookie,key是JSESSIONID,value是随机值存储在客户端,浏览器在cookie的有效存活时间内就可以充分利用这个session专属的cookie来追踪session,进而追踪用户的状态.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值