pythonCookie和Session有什么区别?
一、存取方式不同
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只在他所在的域名内有效。
相关推荐HOT
更多>>python正则表达式中的零宽断言
python正则表达式中的零宽断言1、概念有些元字符不匹配任何字符,只是简单的表示成功或失败,所以这些字符也叫零宽断言。2、符号举例(1)|或操作...详情>>
2023-11-14 11:35:03python方法的绑定和未绑定
python方法的绑定和未绑定1、说明未绑定对象的方法:无self参数的方法,通过定义类调用函数,返回未绑定self的方法。绑定对象的方法:带self参...详情>>
2023-11-14 09:53:02python海象运算符的使用
python海象运算符的使用1、在判断条件下允许操作。在一定程度上简化了代码,但降低了可读性。i=len((l:=[1,2,3]))#先对l进行赋值,在对i赋值whi...详情>>
2023-11-14 02:38:21pythonelif语句报错是什么原因
python的else和elif语句也可以叫做子句,因为它们不能独立使用,两者都是出现在if、for、while语句内部的。else子句可以增加一种选择;而elif子...详情>>
2023-11-13 21:46:35