描述cookies,sessionStorage和localStorage的区别



三者都是在浏览器端存储数据。
1.数据存储大小限制不同。
cookies:数据始终在同源的http请求中携带,即cookie在服务器和浏览器间回传。故存储的数据大小最小,一般为4k。
sessionStorage:数据在本地保存,不会自动把数据发给服务器。所以一般5M或者更大。
localStorage:数据在本地保存,不会自动把数据发给服务器。所以一般5M或者更大。
2.数据有效期不同
cookies:数据在cookie设置的有效期之前都有效,即使窗口和浏览器关闭。
sessionStorage:数据在关闭浏览器窗口后自动清除。存储的数据仅在同源窗口内有效,即使在不同浏览器相同页面也是无效的。一般用于存储会话数据。
localStorage:始终有效,因此用作持久数据。
3.数据作用域不同
cookies:在所有同源窗口敏感词享。
sessionStorage:不在不同浏览器窗口敏感词享。
localStorage:在所有同源窗口敏感词享。

同源:
1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。
最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同"。
  • 协议相同
  • 域名相同
  • 端口相同
举例来说,http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(默认端口可以省略)。它的同源情况如下。
  • http://www.example.com/dir2/other.html:同源
  • http://example.com/dir/other.html:不同源(域名不同)
  • http://v2.www.example.com/dir/other.html:不同源(域名不同)
  • http://www.example.com:81/dir/other.html:不同源(端口不同)

同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的 Cookie,会发生什么?

很显然,如果 Cookie 包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie 往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。

由此可见,"同源政策"是必需的,否则 Cookie 可以共享,互联网就毫无安全可言了。

1.3 限制范围

随着互联网的发展,"同源政策"越来越严格。目前,如果非同源,共有三种行为受到限制。

(1) Cookie、LocalStorage 和 IndexDB 无法读取。

(2) DOM 无法获得。

(3) AJAX 请求不能发送。

虽然这些限制是必要的,但是有时很不方便,合理的用途也受到影响,所以有时需要规避上面三种限制。



cookiessessionStoragelocalStorage都是在Web开发中用于客户端存储数据的方式,但它们之间有一些区别。 1. Cookies(HTTP Cookies): - Cookies 是一种在客户端存储数据的机制,是由服务器发送到浏览器并保存在用户本地的文本文件中。 - Cookies 主要用于跟踪和存储用户信息,如用户的身份认证、购物车内容、个性化设置等。 - Cookies 有一定的大小限制(通常为4KB),同时每个域名下的 Cookies 数量也有限制。 - Cookies 可以设置过期时间,可以是会话级别(当浏览器关闭时失效)或永久性(在指定的时间内有效)。 2. sessionStorage: - sessionStorage 是HTML5中的Web Storage机制之一,用于在浏览器中存储数据,并且仅在当前会话期间有效。 - sessionStorage 中存储的数据仅对当前浏览器窗口或标签页可见,关闭窗口或标签页后数据将被删除。 - sessionStorage 的数据存储量较大,通常支持至少5MB或更多。 3. localStorage: - localStorage 也是HTML5中的Web Storage机制之一,用于在浏览器中长期存储数据。 - localStorage 中存储的数据对于同一域名下的所有窗口和标签页都是可见的,即使浏览器关闭后重新打开也仍然存在。 - localStorage 的数据存储量较大,通常支持至少5MB或更多。 总结: - Cookies 主要用于跟踪和存储用户的会话信息,大小受限,具有过期时间。 - sessionStorage 用于在当前会话期间存储数据,窗口关闭后会话数据消失。 - localStorage 用于长期存储数据,数据在所有窗口和标签页中都可见,不受时间限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值