1 cookie和session的协作
cookie和session都是用来跟踪浏览器用户身份的会话方式,它们往往共同使用:
- 客户端和服务器连接时,在服务器就建立了一个session,用来保存用户的会话信息,服务器为之分配一个唯一的sessionID;
- 服务器向客户端发送一个cookie,cookie中存储了sessionID,客户端将此cookie保存;
- 当客户端再次请求服务器时,客户端把请求和此cookie一起提交给服务器;
- 服务器端通过cookie和唯一的sessionID来辨别用户,并做出对应的响应;
- 这样既方便了用户操作,也增加了安全机制;
session保存在服务器端,在客户端需要的时候创建,在客户端不需要的时候销毁,使它不再占用内存,因此session有一个生命周期,asp.net默认session的生命周期为20分钟。
2 cookie和session的区别
1 存放位置
cookie存放在客户端,session存放在服务器。
2 安全程度
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑安全应当使用session。
3 性能使用程度
session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的内存,考虑到减轻服务器负担,应当使用cookie。
4 数据存储大小
- 单个cookie保存的数据不能超过4K;
- 而session没有对存储数据量对限制,其中可以保存更为复杂的数据类型;
5 会话机制
-
session会话机制:session会话机制是一种服务器端机制,它使用类似于哈希表的结构来保存信息;
-
cookie会话机制:cookie是服务器存储在本地计算机上的小块文本,并随每个请求发送到同一服务器。Web服务器使用HTTP报头将cookie发送到客户端。在客户端终端,浏览器解析cookie并将其保存为本地文件,该文件自动将来自同一服务器的任何请求绑定到这些cookie;