1、Cookie的一些重要结论(令牌,类似就诊卡记住我们的信息):
(1)Cookie从哪里来:服务器返回给浏览器的,通常是首次访问/登录成功之后(cookie是在header中传输)
(2)Cookie到哪里去:Cookie会存储在浏览器本地主机的硬盘上,后续每次访问服务器都会带上Cookie,不同的客户端,保存的Cookie是不同的,即使是同一个主机,使用不同浏览器,Cookie也大概率不相同
(3)Cookie中存什么:键值对格式数据,这里的内容都是程序员自定义的和query string一样外人无法理解
(4)Cookie在浏览器这边如何组织:在硬盘本地保存,是按照不同的域名为维度分别存储,你的浏览器访问百度有一组Cookie和你搜狗的一组Cookie是相互隔离的不会影响彼此
(5)Cookie的用途是什莫:用来在客户端保存数据:其中最主要的时保存用户的身份标识,服务器就可以通过身份标识来区分你用户,一些其他业务数据一般不会存储在Cookie中,Cookie可以随时删掉(我们的医院存储着我们的检查的各种信息,我们的Cookie就是方便我们区分出哪些是我们的信息,业务数据一般都存在服务器里)
(6)账号密码时浏览器的另一种保存机制,如果放到Cookie中,Cookie是要传输给服务器的就可能会导致我们的密码被截取,我们的HTTPS重要的是不能被篡改,但是可能会被解密,到时候我们的密码就可能会泄露
2、Session(会话):
(1)在我们电脑上,浏览器和服务器产生会话,我们可以同时打开多个浏览器产生多个会话,此时我们通过多个浏览器和一个服务器产生会话,此时就需要通过session来区分不同的会话
(2)session就像哈希表一样存储我们的信息
3、cookie和session的关系
(1)例如我们的身份证存储我们一些响应的信息,当我们需要用到身份证进行一些比如酒店登记信息的时候,我们的酒店管理员就需要书我们的身份证来获取我们的信息,此时我们的身份证就是Cookie, 我们身份证刷出来的信息,姓名地址等就存储在我们的session里面,类似的还有学生证,校园卡等
(2)cookie是可以造假的但是我们的session不可以造假
4、cookie和session的使用过程
(1)用户提供账号和密码,服务器进行验证
(2)服务器验证通过,会把信息存储在session中,把session通过set-cookie的方式返回给客户端
(3)客户端受到响应。把sessionID存储在cookie中
(4)后续的请求中,客户端带着sessionID去请求(带着cookie信息去请求)
(5)我们在代码中写的request.getSession就是从Cookie中获取的的SessionID,并根据SessionID获取session信息
5、cookie和session的区别