cookie与localstorage和sessionstorage的区别比较

保存位置:

三者均保存在浏览器端,且同源的。

与服务器的关系:

cookie 数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。

sessionStorage/localStorage:不会自动把数据发给服务器,仅在本地保存。

路径(path)概念:

cookie数据有路径(path)的概念,可以限制cookie只属于某个路径下。

存储大小限制:

cookie  数据不能超过4K,因为每次http请求都会携带cookie,因此cookie只适合很小的数据。

sessionStorage/localStorage 也有存储大小的限制,但比cookie大很多,可以达到5M或者更大。

数据有效期:

cookie 在设置的cookie过期时间之前一直有效。

sessionStorage:仅在当前浏览器窗口关闭前有效。

localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用于持久数据。

作用域不同:

cookie  在所有同源窗口中都是共享的。

sessionStorage:不在不同的浏览器窗口中共享,即使是同一个页面。

localStorage:在所有同源窗口中都是共享的。

 

sessionStorage和localStorage是html5中web storage的两种存储方式,与cookie相似,区别是它是为了更大的容量存储设计的。cookie大小受到限制,并且每次都请求一个新的页面的时候后cookie都会被发送过去,另外cookie还需要制定作用域,不可以跨域调用。

cookie的作用是与服务器进行交互,作为HTTP规范的一部分存在,而web storage是为了本地存储数据而生。有了本地数据,就可以避免数据在浏览器和服务器之间不必要的来回传递。

 

同源的判定:

http://www.test.com

https://www.test.com (不同源,协议不同)

http://my.test.com (不同源,主机名不同)

http://www.test.com:8080 (不同源,端口不同)

 

posted @ 2016-10-25 10:21  catherinehd  阅读(387)  评论(0编辑  收藏  举报