Cookie与Session的原理

视频教学:

https://www.bilibili.com/video/BV1s4411z7zq?p=1

cookie

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
http请求是无状态的,也就是每个请求都是相互的隔离的,那么共享数据是更不可能的了,那么cookie就实现了数据之间的共享,服务端生成了cookie,然后发送到客户端,那么客户端每次发请求的时候都会将cookie携带上,那么就是实现了数据的共享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同一个会话过程中只会有一个session域,就用这个域来共享数据
在这里插入图片描述
session是保存在服务器中的,那么如果有多个会话,那么服务器是怎么判断哪个session,对应的是哪个会话呢??
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个由系统创建的cookie的有效期是会话结束后,也就是和session的有效期是一致的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就浏览器也就是客户端而言,关闭浏览器就是一次会话的结束,但是session失效了(在那个表中没有这个session了)在服务端才意味着会话结束,意思就是说你关闭了浏览器,然后又重新的打开了浏览器,然后你可以输入如下的访问路径,手动的把jsessionid拼在url后面,就可以获取到那个session里存的内容,
在这里插入图片描述
所以在开发过程中为了安全是会设置session的有效期的,不然的话其实session一直存在服务端,那么黑客访问的时候在url中加一个别人的jsessionid的话,就可以看到别人的东西了

在这里插入图片描述
解决方法:
在这里插入图片描述
那么为什么不管cookie有没有被禁用,后端都可以实现session的数据共享,为什么很多网站还要求不能禁用cookie呢?这是因为禁用cookie后,后端通过修改url的方式虽然也能实现session,但是却把jsession暴漏在了url上,已经说过,这样很不安全,如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值