1、Cookie对象
Cookie存放在浏览器中,用于保存浏览器请求服务器页面的请求信息,信息保存的时间可以根据需要设置,如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止,如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期
Cookie存储的信息量很受限制,大多数浏览器支持最大容量为4k,因此不要用来保存信息集及其他大量信息。此外,由于并非所有浏览器都支持Cookie,且信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的信息,否则会影响网站的安全性。
2、Session对象
在服务器端有一个session池,用来存储每个用户提交session中的数据。session对于每一个客户端(浏览器)是“人手一份”,用户首次与Web服务器建立连接时,服务器会给用户分发一个SessionID作为标识。用户每次提交页面,浏览器都会把这个SessionID包含在HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户端,而这个SessionID是以cookie的方式保存的在客户端的内存中的,如果想要得到session池中的数据,服务器就会根据客户端提交的唯一SessionID标识给出相应的数据返回。
SessionID,是由Guid生成的一个由24个字符组成的随机字符串,使用GUID 初始化 SessionId 类的新实例。
3、Application对象
Application用于保存所有用户的公共信息,多个用户共享的应用级别的作用域,在服务器端,相比前两者,存在时间最长,保存到关闭服务器为止。
Cookie、Session、Application的对比:
信息量大小 | 保存时间 | 应用范围 | 保存位置 | |
Cookie | 小量,简单的数据 | 可以根据需要设定 | 单个用户 | 浏览器 |
Session | 小量,简单的数据 | 用户活动时间+一段延迟时间(一般为20分钟) | 单个用户 | 服务器 |
Application | 任意大小 | 整个应用程序的生命期 | 所有用户 | 服务器 |