【1031 | Day57】原来cookie和session的区别这么.....
突然发现昨天写了一大串关于cookie和session的知识内容整理,但是对于两者的区别最后却还是说不清楚,所以还是单独拿出这一块细讲。###
举个小应用场景:##
- 当用户使用浏览器访问一个支持Cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器
- 接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息,当然这些信息并不是存放在HTTP响应体(Response Body)中的,而是存放于HTTP响应头(Response Header)
- 当客户端浏览器接收到来自服务器的响应之后,浏览器会将这些信息存放在一个统一的位置
- 对于Windows操作系统而言,我们可以从
[系统盘]:\Documents and Settings[用户名]\Cookies目录中找到存储的Cookie
- 自此,客户端再向服务器发送请求的时候,都会把相应的Cookie再次发回至服务器。
- 而这次,Cookie信息则存放在HTTP请求头(Request Header)了。
有了Cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。
通常,我们可以从很多网站的登录界面中看到“请记住我”这样的选项,如果你勾选了它之后再登录,那么在下一次访问该网站的时候就不需要进行重复而繁琐的登录动作了,而这个功能就是通过Cookie实现的。
注意!!!!
在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。
- 例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。
话不多说,看图吧!
再单独列一下:
(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。
(2)cookie的存储限制了数据量,只允许4KB,而session是无限量的
(3)我们可以轻松访问cookie值但是我们无法轻松访问session值,因此它更安全
(4)设置cookie时间可以使cookie过期。但是使用session-destory( ),我们将会销毁会话。
总结:
- 如果我们需要经常登录一个站点时,最好用cookie来保存信息,要不然每次登陆都特别麻烦。
- 如果对于需要安全性高的站点以及控制数据的能力时需要用会话效果更佳,当然我们也可以结合两者,使网站按照我们的想法运行。
感兴趣的可以参考:https://blog.csdn.net/qq_38560742/article/details/82717167