pythonCookie和Session有什么区别?

2023-12-12 22:13:56 网络知识 匿名

一、存取方式不同

cookie中只能存储ASCII字符串。如果需要访问Unicode字符或二进制数据,则需要先对它们进行编码。不能直接访问cookie中的Java对象。如果想存储稍微复杂的信息,则使用cookie会更加困难。

Session可以访问任何类型的数据,包括但不限于字符串、整数、列表、Map等。JavaBeans甚至任何Java类、对象等也可以直接存储在session中,使用起来非常方便。

二、不同的隐私政策

Cookie存储在客户端的阅读器中,并且对客户端可见。客户端的某些程序可能会窥探、复制甚至修改cookie中的内容。会话存储在服务器上,对客户端透明,不存在敏感信息泄露的风险。

三、有效期不同

用过谷歌的人都知道,如果你曾经登录过谷歌,谷歌的登录信息是长期有效的。用户无需每次访问都重新登录,谷歌会持久记录用户的登录信息。为了达到这个效果,使用cookies将是一个更好的选择。您只需要将cookie过期时间属性设置为一个非常大的数字。

由于Session依赖于名为JSESSIONID的cookie,并且CookieJSESSIONID的过期时间默认为-1,因此只要读者关闭,Session就会失效,因此Session无法完成永久有效信息的结果。

四、服务器压力不同

Session保存在服务器端,每个用户生成一个Session。如果有大量并发用户,会产生大量会话,消耗大量内存。因此,谷歌、百度、新浪等并发访问量极高的网站不太可能使用Session来跟踪客户会话。

Cookie保存在客户端,不占用服务器资源。如果有很多用户同时阅读,Cookie是一个不错的选择。

五、浏览器支持不同

客户端浏览器支持Cookie。如果客户端禁用cookie,或不支持cookie,会话跟踪将无效。对于Wap上的应用程序,常规cookie没有用。

如果客户端浏览器不支持cookie,则需要使用Session和URL地址重写。需要注意的是,所有使用Session程序的URL都必须重写URL地址,否则Session会话跟踪将失效。

六、跨域支持不同

Cookie支持跨域访问,而Session不支持跨域访问。session只在他所在的域名内有效。

发表评论: