视频教学:
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上,已经说过,这样很不安全,如下: