cookie与storage数据存储和url的关系,一看就明白

前沿:cookie和storage的区别就不用说了啊。对cookie可以参考这里1这里2

  1. cookie存储数据和url关系
  • 语法
setcookie(name,value,expire,path,domain,secure)
参数是否必填默认值作用
namecookie 的名称。
valuecookie 的值。
expire默认为关闭浏览器Cookies生命周期到期cookie 的有效期。
path默认值为设置该cookie的网页所在的目录规定 cookie 的服务器路径。
domain默认值为设置该cookie的网页所在的域名cookie 的域名。
secure空(不加密)规定是否通过安全的 HTTPS 连接来传输 cookie。
httponly空(js允许访问)只能通过http协议才能访问该cookie,意味着客户端javascript就不可操作这个cookie。
  • cookie浏览器的同源策略具体如下
URLdomainpath是否允许
http://www.a.com/a
http://www.a.com/a.js
http://www.a.com/b
http://qiji.a.com/a.js
a.com/允许
http://qiji.a.com/a
http://qiji2.a.com/a
qiji.a.com/不允许
http://qiji.a.com/a
http://qiji.a.com/b
qiji.a.com/允许
http://qiji.a.com/a
http://qiji.a.com/a/b
qiji.a.com/a允许
  • 总结:页面能访问那些cookie跟从哪里引入js没有半毛钱关系。而跟html页面本身的domain和path有很直接的关系
  • ⚠️:要删除一个cookie,domain和路径必须完全相同
  1. storage存储数据和url管理
  • 概念
    localStorage(这里)和 sessionStorage的主要区别是:localStorage的生命周期是永久的,意思就是如果不主动清除,存储的数据将一直被保存。而sessionStorage顾名思义是针对一个session的数据存储,生命周期为当前窗口,一旦窗口关闭,那么存储的数据将被清空。
  • 语法
window.localStorage
//保存数据
localStorage.setItem("key", "value");
//读取数据
var lastname = localStorage.getItem("key")
//删除数据
localStorage.removeItem("key");
  • ⚠️:localStorage在浏览器的隐私模式下面是不可读取的
  • localStorage浏览器的同源策略具体如下:
URL说明是否允许通信
http://www.a.com/a.js
http://www.a.com/b.js
同一域名下 允许允许
http://www.a.com/lab/a.js
http://www.a.com/script/b.js
同一域名下不同文件夹允许
http://www.a.com:8000/a.js
http://www.a.com/b.js
同一域名,不同端口不允许
http://www.a.com/a.js
https://www.a.com/b.js
同一域名,不同协议不允许
http://www.a.com/a.js
http://70.32.92.74/b.js
域名和域名对应ip不允许
http://www.a.com/a.js
http://script.a.com/b.js
主域相同,子域不同不允许
http://www.a.com/a.js
http://file.a.com/b.js
同一域名,不同二级域名(同上不允许(cookie这种情况下也不允许访问)
http://www.cnblogs.com/a.js
http://www.a.com/b.js
不同域名不允许

总结:只要不同源就不能共享localStorage的数据

  • sessionStorage浏览器的同源策略具体如下:
    不同页面间无法共享sessionStorage的信息。这里需要注意的是,页面仅指顶级窗口,如果一个页面包含多个iframe且他们属于同源页面,那么他们之间是可以共享sessionStorage的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cookie、Session和Storage都是用于在Web应用程序中存储数据的方法,它们的主要区别在于数据存储的位置、作用域和使用方式。 Cookie存储在客户端的一小段文本信息,它的作用是跟踪用户的会话状态,例如用户的登录状态,以及存储一些用户个性化的设置。Cookie的缺点是容易被拦截和篡改,因此敏感信息不应该存储Cookie中。 Session是存储在服务器端的会话状态信息,它的作用也是为了跟踪用户的会话状态。当用户第一次访问应用程序时,服务器会创建一个唯一的Session ID,并将该ID存储Cookie中,当用户再次访问应用程序时,服务器通过Session ID来识别用户,并从服务器中查找与该Session ID对应的Session数据,从而恢复用户的会话状态。 Storage分为localStorage和sessionStorage两种,它们都是HTML5提供的新特性,用于在客户端存储数据,与Cookie不同的是,它们不会随着HTTP请求被发送到服务器端。localStorage和sessionStorage的主要区别在于数据的作用域和生命周期。localStorage存储数据在同一浏览器、同一域名下都可以共享,而sessionStorage存储数据只在当前会话中有效,当用户关闭浏览器或者标签页时,sessionStorage中的数据就会被清除。 总体来说,Cookie、Session和Storage的主要区别在于数据存储的位置、作用域和使用方式。根据具体的需求,我们可以选择不同的存储方式来实现数据存储和传递。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值