cookie的存在方式
cookie是浏览器支持的本地存储方式,存储形式是dict(键值对的形式),存储在浏览器中。
为什么会存在cookie
因为http是无状态的协议,服务器在接受到浏览器的请求之后,服务器直接返回内容给浏览器,并不管这个请求是谁请求的。
为了知道这个请求是谁发送的,在浏览器向服务器发出请求后,服务器会分配给浏览器一个ID,同时把这个ID返回给浏览器。
此时浏览器会把这个ID保存在cookie当中,在下一次请求时,浏览器会带着这个ID向服务器发起请求。此时服务器就知道是谁发送的这个请求。
session
为了解决安全隐患,因为不能把所有东西存在本地,引申出了session。
根据用户名和密码,生成一段随机的字符串,这个字符串是有过期时间的。session是服务器生成的,保存在服务器上。当浏览器向服务器发起登陆请求时,浏览器带着这个随机的生成的字符串发送给浏览器,浏览器将这个session保存在cookie中。在浏览器下一次请求服务器时,带着这个sessionid去请求,服务器将在数据库中查询这个sessionid是否存在。
区别
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中