`
xly_971223
  • 浏览: 1273929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Cache-Contro缓存

阅读更多
浏览器缓存一直是web开发人员比较重视的优化点
这要有这个几个http header来控制:
Cache-Control中的max-age
expires
Last-Modified
ETag

其中max-age 和 expires可分在一组
Last-Modified 和 ETag分在一组
下面讲一下两组的区别
max-age 和 expires
当浏览器再次请求一个资源时会检查缓存响应中的max-age,如果没有过期则直接使用缓存中的数据,‘刷新’浏览器例外;
expires的作用跟max-age一样,区别在于同时存在时max-age会覆盖expires
max-age可用在image css js等不常变化的资源

Last-Modified 和 ETag
这个两个头跟上面的区别在于必须发送请求到服务器,服务器来判断是否发送响应体
Last-Modified必须与If-Modified-Since配合使用
工作过程如下:
1 服务器发送带有Last-Modified头的响应给浏览器,浏览器缓存之
2 再次请求改页面时,浏览器会把上次Last-Modified的时间用If-Modified-Since头发送给服务器
3 服务器检查If-Modified-Since时间是否过期,如果过期发送新数据;否则发送304告诉浏览器缓存数据时有效的

Etag的原理跟Last-Modified基本上是一样的

上述两种缓存方式都可降低对服务器的压力, 节约了网络带宽 提高了服务器的处理能力

另外gzip也是比较简单且有效的节约带宽方式

=============================================
刚才用etherreal抓包
max-age=604800 时,浏览器不发送任何请求
刷新浏览器则发送http get /images/aaa.gif 返回的是304状态
0
0
分享到:
评论

相关推荐

    SERVLET 上传文件原理,Cache-Contro,java编码,jbpm原理

    例如,`Cache-Control: no-cache`意味着每次请求都应该向服务器验证是否更新了资源;`Cache-Control: max-age=3600`表示响应可以被缓存一小时。理解并正确设置`Cache-Control`对于优化网站性能和减少网络流量至关...

    matlab仿真-following-contro笔记

    在MATLAB环境中进行路径跟随控制(Path-Following Control)是一项常见的工程应用,尤其是在自动驾驶、无人机导航、水下机器人等领域。本笔记将深入探讨MATLAB中的路径跟随控制系统设计与仿真。...

    浏览器之HTTP缓存的那些事

    - **请求头**:`Cache-Control: no-cache` 表示不使用任何缓存副本。 2. **Expires** - **概述**:Expires是HTTP1.0中使用的头部,指定资源的到期时间。然而,由于客户端与服务器之间可能存在时间偏差,因此在...

    Rust中的简单http服务器(Windows / Mac / Linux)-C/C++开发

    [OPTIONS] [-] [root] FLAGS:--cors通过“ Access-Control-Allow- Origin“标头-h,--help打印帮助信息-i,--index启用自动呈现索引页[index.html,index.htm] --nocache禁用http缓存--norange禁用header :: Range...

    applet-window-title:Plasma 5小程序,显示活动窗口的应用程序标题和图标

    窗口标题小程序 这是一个Plasma 5小程序,可在面板中显示当前的窗口标题和图标。 这种浆体来自但它也可以支持等离子板。 窗口标题留给Plasma 5全局菜单 外观设置 行为设定 需要 血浆> = 5.8 ...

    MIL-STD-3071_2023 Tactical Microgrid Communications and Contro

    MIL-STD-3071_2023 Tactical Microgrid Communications and Contro

    Model-free adaptive process contro

    国外的一篇介绍无模型自适应控制的论文~~很好的文章

    Nginx配置跨域请求Access-Control-Allow-Origin * 详解

    3. `Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'`:设置允许的请求头,防止因特定请求头未被服务器...

    1_data-center-cooling_Center_model-predictive_control_

    文件"7638-data-center-cooling-using-model-predictive-control.pdf"很可能包含了关于MPC在实际数据中心冷却应用中的详细案例、理论基础、算法实现以及性能评估。可能的内容包括: 1. **MPC的基本原理**:解释模型...

    frontend-boiler:Angular, Zurb Foundation, Coffee, Sass, Jade, Gulp (livereload)

    ####结构index.jade #bootstrap angular assets/ #images, sass 等 app/ #angular --common/ # 模块可能会在许多 --components/ 中重用 # 基于关注的模块 | --home/ | --index.coffee # bootstraps --contro

    ember-proxy-controllers:将Ember.ObjectController和Ember.ArrayController提取为独立的插件

    灰烬代理控制器 将Ember.ObjectController和Ember.ArrayController提取为独立的插件。 安装 运行ember install ember-proxy-controllers ,一切顺利 ...import ObjectController from 'ember-proxy-contro

    javaweb图书管理系统

    JavaWeb图书管理系统是一个基于Java语言和Web技术的应用程序,旨在为图书馆或图书管理机构提供一个高效、便捷的管理平台。该系统通过Web界面实现图书的添加、删除、...JavaWeb图书管理系统采用MVC(Model-View-Contro

    induction-motor-vector-control-.rar_flux vector_induction contro

    《异步电动机矢量控制系统的深度解析及MATLAB-SIMULINK仿真》 异步电动机,作为工业生产中最常见的电动机类型,其运行效率和动态性能在很大程度上决定了设备的工作效能。为了提高异步电动机的控制精度和响应速度,...

    Contro X2000使用DDE方式读取VB中的数据

    在本例中,我们关注的是如何使用Contro X2000通过DDE方式从VB(Visual Basic)环境中读取数据。Contro X2000可能是一个工业自动化或控制系统,而VB则被用来处理数据,如从PLC(可编程逻辑控制器)获取I/O值。 在VB...

    High-speed Charting Control--MFC例子

    高速绘图(轴固定时),允许快速绘制数据 无限数量的数据序列(内存是限制) 每个数据序列的数据量不受限制 支持线图,点图,平面图,柱状图,K线图 和甘特图系列 最多四个轴(左,下,右和上轴) ...

    ionic-proxy-example:一个快速的 Ionic 项目,展示了如何使用代理服务器

    目的 该项目主要用于向您展示如何使用 Ionic 代理服务器在没有 CORS 的情况下访问 API。 这个项目有两个部分: ... XMLHttpRequest cannot load http://localhost:3000/api/endpoint. No 'Access-Contro

    oriented_vector_control.rar_FLUX - WEAKENING _flux vector contro

    异步电机间接矢量控制Simulink仿真模型,带有转速外环和Iq、Id两个内环,转速和负载指令阶跃变化,3/2变换为恒幅值变换,不包含弱磁控制,磁链指令为恒值。PWM调制算法采用空间矢量调制(SVPWM)。

    《Version Contro with Subversion》SVN以及安装方法

    ### SVN版本控制系统详解及安装指南 #### 一、SVN简介 **Subversion**(简称SVN)是一款开源的版本控制系统,用于管理文件和目录的变化历史。它允许用户恢复早期版本的数据,或者查看数据如何随时间变化。...

    Allow-Control-Allow-Origin谷歌跨域插件

    关于"Allow-Control-Allow-Origin"的详细知识点: 1. 同源策略:这是浏览器安全特性,限制了来自不同源(协议+域名+端口)的JavaScript代码对页面内容的访问。同源策略是为了防止恶意网站读取或修改敏感数据。 2. ...

    PHP邮箱验证示例教程

    在用户注册中最常见的安全验证之一就是邮箱验证。根据行业的一般做法,进行邮箱验证是避免潜在... ... <... <fieldset class=form-group> <label for=fname>First Name: ...input type=text name=fname class=form-contro

Global site tag (gtag.js) - Google Analytics