存储 | 生命周期 |
---|---|
cookie | 没有设置 expires 选项时,cookie 的生命周期仅限于当前会话中,关闭浏览器意味着此次会话的结束,因此会话 cookie 仅存在于浏览器打开状态之下。<br/>这就是为何当你登陆一个 Web 应用时常常会看到一个复选框,询问你是否记住登陆信息:若是你勾选了复选框,那么一个 expires 选项会被附加到登陆 cookie 中。 |
localStorage | 生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,不然这些信息将永远存在。 |
sessionStorage | 生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么全部经过sessionStorage存储的数据也就被清空了。 |
cookie的两种形式 短暂性的:浏览器关闭后或者页面关闭后就删除cookie 具备有效期的:设置了有效时间,浏览器关闭依然存在硬盘javascript
cookie属性:secure 安全的Cookie只有基于HTTPS协议加密的请求才会发送给服务端。java
cookie属性:httpOnly 为避免跨域脚本 (XSS) 攻击,经过JavaScript的 Document.cookie API没法访问有HttpOnly 标记的Cookie,Cookie只须要发送给服务端。web
Cookie的做用域:Domain、Path Domain 和 Path指令定义了Cookie的做用域,即Cookie须要发送给那些URL。 Domain指令规定了须要发送Cookie的主机名。若是没有指定,默认为当前的文档地址上的主机名(可是不包含子域名)。若是指定了Domain,则通常包含子域名。 若是设置了Domain=mozilla.org,则Cookie包含在子域名中(如developer.mozilla.org)。 Path指令代表须要发送Cookie的URL路径。字符%x2F (即"/")做为路径分隔符,子路径也会被匹配到。 如设置Path=/docs,则下面这些地址都将匹配到: /docs /docs/Web/ /docs/Web/HTTP跨域
cookie属性:SameSite SameSite的Cookie容许服务器指定在跨站请求时Cookie是否会被发送,从而能够阻止跨站请求伪造攻击(CSRF)。但目前SameSite Cookie还处于实验阶段,并无被全部的浏览器所支持。浏览器
第一方Cookie、第三方Cookie 第一方Cookie和第三方Cookie实际上是一个很是简单的概念,可是我在百度上随便搜索了一些解释,好像都不是很清楚,也不是很准确。实际上,所谓第一方和第三方的说法,是用来肯定Cookie的归属的,这个归属是指Cookie中记录的域(domain)。举个例子:若是你访问个人这个网站www.chinawebanalytics.cn的时候,个人网站在你的电脑上设置了一个Cookie,里面的记录的域名也是www.chinawebanalytics.cn,那么这个Cookie就是第一方的,归你访问的网站www.chinawebanalytics.cn全部。而若是你访问网站www.chinawebanalytics.cn时,在你的计算机中设置的Cookie的域名是www.omd.com,那么这个Cookie就是第三方Cookie,归www.omd.com全部。 对于网站分析而言,这个概念是很是重要的。例如,你会问Google Analytics使用的Cookie是1st party的,仍是3rd party的。答案是第一方的。首先,Google Analytics在每一个被监测网站上的Cookie都是由咱们熟悉的监测javascript代码所建立的(是的,javascript也能够建立Cookie,知道这点就够了,不须要深挖),其次,这个被建立的cookie的域不是analytics.google.com,而是被监测网站本身的域。所以,虽然这个Cookie其实是在Google Analytics的帮助下创建的,并且也为Google Analytics所用(反而不能被“被监测网站”直接利用),它仍然是第一方Cookie。 因此,第一方Cookie并不必定须要由某个网站本身的服务器给本身创建,别的网站也能为它创建;并且,第一方Cookie也不必定是能由某个网站本身读取的,它彻底可能由第三方读取。第一方和第三方的惟一区别只是:Cookie中的域名是否和被访问网站的域同样,是就是第一方,否就是第三方。安全
网站分析和全部的互联网广告的监测,都会更喜欢第三方Cookie。 缘由是,第三方Cookie能够用来监测跨网站的访问者行为。例如,DoubleClick使用的就是第三方Cookie,这个公司会为你打开的全部载有DoubleClick广告的页面创建同一个(仅一个)域为DoubleClick的Cookie,这样,只要你打开了这些网页,不管它们是否属于同一网站,你的浏览广告的行为DoubleClick都能知道。可是第一方Cookie就不行了,由于第一方Cookie得用被监测网站的域,这样多个网站就会有多个不一样的Cookie,跨网站浏览行为就没法监测了。 对于大多数浏览器而言,第三方Cookie是被默认关闭的,缘由在于人们在讨论Cookie涉及的隐私问题时,倾向于认为第三方Cookie极大的获取了人们的行为隐私,并由此产生了对第三方Cookie广泛的不信任和误解。但事实上,全部的Cookie都不会泄露任何关于浏览者我的的隐私信息,它捕捉的仅仅只是浏览行为自己,第三方Cookie也不例外。而若是全部人都愿意接受第三方cookie,那么网站分析可以给出的分析和优化方案会更多。但惋惜,由于第三方Cookie被广泛禁用,所以利用第三方Cookie的监测工具并很少,只有监测网络广告的工具才会坚持使用第三方Cookie。服务器
引用:http://www.chinawebanalytics.cn/cookie-and-protect-cookie/cookie