LocalStorage、SessionStorage、Cache-Control

LocalStorage方法:getItem()、setItem()、deleteItem() 

LocalStorage特点:

①LocalStorage 跟HTTP无关,HTTP不会带上LocalStorage的值。

②只有相同域名的页面才能互相读取LocalStorage(没有同源严格)。

③每个域名的LocalStorage最大存储量为10M左右。(浏览器有差异)。

④永久有效,除非用户清理缓存。

LocalStorage常用场景:记录有没有提示过用户某些通知,例如更新、出了什么新功能等(不能记录密码)



SessionStorage方法:getItem()、setItem()、deleteItem() 

SessionStorage(会话存储) 特点:

①②③跟LocalStorage相同,④用户关闭页面后SessionStorage失效。

⑤SessionStorage不支持多窗口共享。





HTTP缓存 - Cache-Control

在服务器响应头中设置Cache-Control后,在规定时间内访问相同URL时,请求被中断(请求没有发出去),浏览器直接从本地缓存中读取数据。例如:response.set-header('Cache-Control','max-age=30')

首页(HTML)不能设置Cache-Control,要预留一个通道,Cache-Control一般情况下设置一年。如果网页更新,可以更改url,让用户下载新的资源,如下图


Expires是旧版的HTTP缓存,用法:response.set-header('Expires','Wed, 21 Oct 2015 07:28:00 GMT'),跟上面的区别就是Cache-Control设置时间长度,Expires设置时间点(格林威治时间)。

Etag用法:response.set-header('Etag',MD5),请求时如果文件相同,只返回响应头,没有响应体。





Cookie与LocalStorage的区别: 

①每次访问服务器时,Cookie都会被带到服务器,而LocalStorage不会。

②Cookie的最大存储量大概为4k,LocalStorage为10M。

③Cookie默认关闭页面后失效,而LocalStorage永久有效。(不考虑人为因素)

你可能感兴趣的:(LocalStorage、SessionStorage、Cache-Control)