1.cookie和session产生背景
因为HTTP请求是一种无状态的请求,一旦数据交换完毕便会关闭请求,再次交换数据则需要再次发起请求,所以服务端无法通过连接追踪会话,确定用户身份,而cookie和session则可以帮助服务端确定用户身份。
2.cookie运行流程
当用户第一次登陆的时候,服务器返回一段数据(cookie)给浏览器存储起来。那么在第二次请求的时候,浏览器发送存储的cookie给服务器,让服务器确认访问用户的身份。
3.session运行流程
而session则和cookie差不多,都是用来存储数据,确定用户身份的。不同的是session是存储在服务器的,而cookie则是存储在电脑本地文件里的,一般第一次登陆的时候,服务器在存储session时会生成session_id,通过http请求头返回给浏览器,然后浏览器则会把session_id保存在cookie里,等到第二次请求的时候,浏览器则会发送session_id到服务器,服务器通过session_id获取到对应的数据来判断用户的身份
4.会话cookie和持久cookie的区别
会话cookie:无过期时间,关闭浏览器窗口cookie就消失了。保存在内存里,不同的浏览器有不同的处理方式。
持久cookie:有过期时间,浏览器会把cookie保存在硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。存储在硬盘上的cookie可在不同的浏览器进程间共享。
5.cookie和session的区别
1、Cookie 在客户端(浏览器、易伪造、不安全),Session 在服务器端(会消耗服务器资源)。
2、Cookie 只能保存ASCII字符串,如果是Unicode字符或者二进制数据需要先进行编码。Cookie中也不能直接存取Java对象。 Session能够存取很多类型的数据,包括String、Integer、List、Map等,Session中也可以保存Java对象。
3、Session是通过Cookie来工作的