zoukankan      html  css  js  c++  java
  • 缓存

    当web缓存发现请求的资源,浏览器拦截请求,返回该资源的拷贝,而不会去源服务器重新下载。

    优点:缓解服务器端压力,提升性能(减少网页加载速度)提高用户体验。

    浏览器缓存有两种方式:强缓存和协商缓存。

    请求资源时浏览器怎么知道是强缓存还是协商缓存?

    用户首次请求并获取到该资源后,根据返回的信息来告诉如何缓存资源,可能采用的是强缓存,也可能告诉客户端浏览器是协商缓存,这都需要根据响应的header内容来决定。

    强缓存:

    (1)过程

    用户请求访问过的资源,浏览器拦截请求,查看该资源的强缓存相关header字段来判断资源是否过期。若过期即命中强缓存,直接从本地获取资源来展示给用户,若没有命中强缓存,则从服务器重新加载资源或者进去协商缓存流程(如果资源同时设置了强缓存和协商缓存)

    (2)相关header字段

    一个未来时间,浏览器再次加载资源时,如果在这个过期时间内,则命中强缓存。

    cache -contorl:

    当值设为max-age = 300 时。 则代表在这个请求正确返回时间的5分钟再次加载资源,就会命中强缓存。

    协商缓存:

    用户请求访问过的资源,请求头携带相关header字段去跟服务器的对应相关header字段做对比,由服务器判断资源是否修改,未修改则命中协商缓存,服务器返回304状态,不返回资源,浏览器获取本地资源。若资源被修改,则返回200状态。

    强缓存和协商缓存的区别

    强缓存是浏览器(判断是否命中后)单方面做决定是否向服务器发起请求,比较强势,若命中则不会与服务器进行任何通信。而协商缓存是浏览器与服务器(相关字段的校对)双方是否返回新资源

    一般将一些不常更新的静态资源设置强缓存加协商缓存,而类似index.html等更新频繁的资源设置为协商缓存。

    以上是http缓存,前端缓存还有浏览器缓存。

    浏览器缓存分:本地缓存和默认缓存。

    localStorage,sessionStorage .

    cookie主要用于用户信息的存储,Cookie 的内容可以自动在请求的时候被传递给服务器。

    localStorage 的数据将一直保存在浏览器内,直到用户清除浏览器缓存数据为止。

  • 相关阅读:
    使用Systemctl命令来管理系统服务
    使用lsblk命令列出系统中的块设备
    史上最全 | 1000余个实用尽调网站分类汇编
    ​2021年机器学习什么风向?谷歌大神Quoc Le:把注意力放在MLP上
    上手使用 DeepMind 分布式强化学习框架 Acme ,对开发者超友好
    005-ESP32学习开发(SDK)-新建工程补充-通过官方示例创建工程
    Golang 程序中实现优雅关闭 HTTP SERVER
    Golang的time.NewTicker周期性定时器使用案例
    彻底搞懂golang的GOROOT和GOPATH
    微服务之-ServiceMesh
  • 原文地址:https://www.cnblogs.com/panax/p/13396849.html
Copyright © 2011-2022 走看看