session介绍
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。
Cookie介绍
Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息
session和cookie的区别
1、存储位置不同
1.1cookie的数据信息存放在客户端浏览器上;
1.2session的数据信息存放在服务器上。
2、存储容量不同
2.1单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie;
2.1对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式不同
3.1cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
3.2session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
4、隐私策略不同
4.1cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
4.2session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
5、有效期上不同
5.1开发可以通过设置cookie的属性,达到使cookie长期有效的效果。
5.2session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
6、服务器压力不同
6.1cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。
6.2session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
7、浏览器支持不同
7.1假如客户端浏览器不支持cookie:
7.1.1cookie是需要客户端浏览器支持的,假如客户端禁用了cookie,或者不支持cookie,则会话跟踪会失效。关于WAP上的应用,常规的cookie就派不上用场了。
7.1.2运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。
7.2假如客户端支持cookie:
7.1.1cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效;
7.1.2session只能在本窗口以及子窗口内有效。
8、跨域支持上不同
8.1cookie支持跨域名访问;
8.2session不支持跨域名访问。