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

  • Post author:
  • Post category:其他


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

这里1


这里2

  1. cookie存储数据和url关系
  • 语法
setcookie(name,value,expire,path,domain,secure)
参数 是否必填 默认值 作用
name cookie 的名称。
value cookie 的值。
expire 默认为关闭浏览器Cookies生命周期到期 cookie 的有效期。
path 默认值为设置该cookie的网页所在的目录 规定 cookie 的服务器路径。
domain 默认值为设置该cookie的网页所在的域名 cookie 的域名。
secure 空(不加密) 规定是否通过安全的 HTTPS 连接来传输 cookie。
httponly 空(js允许访问) 只能通过http协议才能访问该cookie,意味着客户端javascript就不可操作这个cookie。
  • cookie浏览器的同源策略具体如下
URL domain path 是否允许
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的



版权声明:本文为weixin_39579517原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。