zoukankan      html  css  js  c++  java
  • 浏览器缓存问题原理以及解决方案

    浏览器缓存问题

    简单来说,浏览器缓存就是把一个已经请求过的Web资源(如html页面,图片,js,数据等)拷贝一份副本储存在浏览器中。缓存会根据进来的请求保存输出内容的副本。当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个URL地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。只有当网站明确标识资源已经更新,浏览器才会再次下载网页。

    为什么使用缓存

    1. 减少网络带宽消耗

    2. 降低服务器压力

    3. 减少网络延迟,加快页面打开速度

    浏览器端的缓存规则

      新鲜度(过期机制):也就是缓存副本有效期。
    
      校验值(验证机制):资源的实体标签Etag(EntityTag)
    

    解决方法

    (1)使用HTMLMeta标签
    

    Web开发者可以在HTML页面的节点中加入标签,代码如下

             <metahttp-equiv="Pragma"content="no-cache">
    

    事实上这种禁用缓存的形式用处很有限:

    a. 仅有IE才能识别这段meta标签含义,其它主流浏览器仅识别“Cache-Control:no-store”的meta标签。
    b. 在IE中识别到该meta标签含义,并不一定会在请求字段加上Pragma,但的确会让当前页面每次都发新请求(仅限页面,页面上的资源则不受影响)。

    (2)使用缓存有关的HTTP消息报头
    

    在HTTP请求和响应的消息报头中,常见的与缓存有关的消息报头有:

  • 相关阅读:
    python使用阿里云oss-sdk
    flask-文件上传的使用
    flask-migrate的基本使用
    flask-script的基本使用
    flask-sqlalchemy的基本使用
    alembic的常用参数
    sqlchemy查询的其他操作
    orm层面的删除的注意事项
    C#获取数据库中的Instance
    SOA Demo
  • 原文地址:https://www.cnblogs.com/amingxiansen/p/13167180.html
Copyright © 2011-2022 走看看