Cookie 、session、sessionStorage 、localStorage 的区别

Cookie: cookie 数据始终在同源的 http 请求中携带 (即使不需要) , 即 cookie 在浏览器 和服务器间来回传递 。 而 sessionStorage 和 localStorage 不会自动把数据发给服务器, 仅 在本地保存。 cookie 数据还有路径 (path) 的概念, 可以限制 cookie 只属于某个路径下, 存储的大小很小只有 4K 左右。 (key: 可以在浏览器和服务器端来回传递, 存储容量 小, 只有大约 4K 左右)

session:session的数据信息存放在服务器上。对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。session只能在本窗口以及子窗口内有效。session不支持跨域名访问。

sessionStorage: 仅在当前浏览器窗口关闭前有效, 自然也就不可能持久保持,localStorage: 始终有效,窗口或浏览器关闭也一直保存, 因此用作持久数据; cookie 只在设置的cookie 过期时间之前一直有效, 即使窗口或浏览器关闭 。 (key: 本身就是一个回话过程, 关 闭浏览器后消失, session 为一个回话, 当页面不同即使是同一页面打开两次, 也被视为 同一次回话)
localStorage: localStorage 在所有同源窗口中都是共享的; cookie 也是在所有同源窗口中 都是共享的。 (key: 同源窗口都会共享, 并且不会失效, 不管窗口或者浏览器关闭与 否都会始终生效)
补充说明一下 cookie 的作用:
保存用户登录状态 。 例如将用户 id 存储于一个cookie 内, 这样当用户下次访问该页面 时就不需要重新登录了, 现在很多论坛和社区都提供这样的功能 。 cookie 还可以设置 过期时间, 当超过时间期限后, cookie 就会自动消失 。 因此, 系统往往可以提示用户保
持登录状态的时间: 常见选项有一个月、三个 月 、一年等。
跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情况。 如果每次都需要选择所在地是烦琐的, 当利用了 cookie 后就会显得很人性化了, 系统能 够记住上一次访问的地区, 当下次再打开该页面时, 它就会自动显示上次用户所在地区 的天气情况 。 因为一切都是在后 台完成, 所以这样的页面就像为某个用户所定制的一样, 使用起来非常方便定制页面。如果网站提供了换肤或更换布局的功能, 那么可以使 用 cookie 来记录用户的选项, 例如: 背景色、分辨率等 。 当用户下次访问时, 仍然可以 保存上一次访问的界面风格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值