cookie和session
cookie和session的对比?
1.不同的存储位置,cookie将状态信息保持在客户端,session保存在服务端,这是最大的区别。
2.不同的数据方式,。只有ascll字符串可以春处在cookie中,而session采用哈希表的方式,可以保存任意类型的数据
为什么会有状态保持,因为http协议,底层走tcp,tcp是无状态的协议
作用:状态保持的一种方案,用来实现状态保持
本质:是key,value形式的字符串;
原理:服务器给每个客户端进行编号
服务器生成cookie得到key和value
服务器把key和value都给浏览器,在浏览器中保存
浏览器在请求服务器时,会自动携带cookie
服务器能够根据cookie信息,识别你是谁
session:会话的意思,
作用:状态保持的一种方案,用来实现状态保持。
本质:是key、value形式的字符串;
原理:
服务器生成session的key和value
服务器把key给浏览器,在浏览器的cookie保存,服务器中保存value
浏览器在请求该服务器时,会自动携带session
服务器就能够根据session的key,识别服务器中存储的该session的value;
一个session的key和value,是一一对应关系;
cookie和session的区别:
1.cookie数据key/value都存放在浏览器上,session的value数据放在服务器
2.cookie不安全,因为key和value都在浏览器中存储,容易获取
3.session更安全,如果访问量较大,占用服务器的空间、影响服务器性能
4.cookie和session都有有效期,有效期失效后,需要重新生成。
5.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
6.浏览器同源策略,浏览器在访问服务器时,服务器只能获取自己写入的cookie或session信息,不能获取别的服务器的cookie和session信息。
- 1. 什么是cookie?
Cookie是由服务器端生成,发送给浏览器,浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时自动发送该Cookie给服务器
Cookie可以用来在某个WEB站点会话间持久的保持状态
- 2. 什么是session?
Session是另一种记录客户状态的机制,基于Cookie实现,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session,客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了
- 3. 什么是session共享?
当服务器使用了负载均衡的时候,当多台服务器使用的都是同一套网站的代码,用户请求网站时,请求会被分发到不同的服务器上
这种情况下,用户第一次请求时,在A服务器生成了Sessionid,但在B服务器和C服务器并没有生成Sessionid,此时就会导致用户的登录状态出现问题,各服务器之间不能保持一致

浙公网安备 33010602011771号