关于web缓存,HTTP缓存和浏览器缓存的区别

描述:

最近在看浏览器缓存,突然又冒出web缓存和HTTP缓存,今天特意梳理一下这三者的区别;特记录于此,本人技术有限,只能解释一二,若有什么欠缺,也望不吝指出。

前端缓存概述:

前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而浏览器缓存则主要由前端开发在前端js上进行设置。

HTTP缓存

整体流程

HTTP缓存都是从第二次请求开始的。

第一次请求资源时,服务器返回资源,并在respone header头中回传资源的缓存参数;第二次请求时,浏览器判断这些请求参数,击中强缓存就直接使用缓存内容,否则就把请求参数加到request header头中传给服务器,看是否击中协商缓存,击中则使用该缓存资源,否则服务器会返回新的资源。

HTTP缓存分为强缓存和协议缓存:

强缓存命中的话不会发请求到服务器,协商缓存一定会发送请求到服务器。

浏览器缓存

Cookie主要用于用户信息的存储,Cookie的内容可以自动在请求的时候被传递给服务器。但是每次浏览器对cookie的数量大小都有限制,如果cookie的数量过多,会导致http里的header的内容过大,导致出现错误。

web存储分为localStorage和sessionStorage,web存储的数据不会向服务器发送,相比更加安全。只是用于用户请求网站数据,可以存储大量数据。且不影响性能。同样遵循“同源策略”

LocalStorage的数据将一直保存在浏览器内,直到用户清除浏览器缓存数据为止。作用域在文档源

                存储值:localStorage.属性名=值;   属性名 自己来定。值可以是任意类型

                读取:localSrorage.属性名; 

                修改:只要遵循同源策略,任何页面都可以修改值

                方法:setItem("属性名",值);存储一个值

                          getItem("属性名"):读取值

                          removeItem("属性名");删除值

                          clear():全部删除

SessionStorage的属性方法同LocalStorage,只不过它的生命周期同标签页的生命周期,当标签页被关闭时,SessionStorage也会被清除。只在当前会话窗口有效,且作用域限制在同源同窗口

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值