Squid和Apache中的max-age与Expires的分别

本文链接: http://www.php-oa.com/2008/09/05/squidmaxageexpires.html



主要重点在于我们要明白一个相对(Expires)一个绝对(max-age).

分别

max-age
max-age是HTTP/1.1中,他是指我们的web中的文件被用户访问(请求)后的存活时间,是个相对的值,相对Request_time(请求时间).
例如:A.html 用户请求时间是18:00,max-age设置的是600的话,相当18:00+600秒过期,也就是相对18:00的时间后面600秒后过期.默认的max-age是由Expires算出来的.

Expires
Expires是HTTP/1.0中的,它比max-age要麻烦点.Expires指定的时间分下面二种,这个主要考虑到apache中设置是A还是M.

1.相对文件的最后访问时间(Atime)
当Apache使用A时间来做Expires时.这样设置时.他就和max-age的值相等,因为max-age是相对文件的请求时间(Atime).

例如:ExpiresByType text/html A600

由上面我们得知,Apache设置Atime时,过期为600秒时.
Expires=18:00+600=18:10
max-age=18:00+600=18:10
得出:Expires=max-age

2.绝对修改时间(MTime)
这又分二种情况,我们来拿A.htm来讲
假设文件的建立时间为18:00.

当用户Request请求为18:00时,过期为600秒
Expires=18:00+600=18:10
max-age=18:00+600=18:10
得出:Expires等于max-age

当用户Request请求为18:20时,过期为600秒

Expires=18:00+600=18:10(因为设置成Mtime时,时间由文件建立时间来决定)
max-age=18:20+600=18:30
得出:Expires不等于max-age

另外要注意,象上面这种清况时,max-age优化,所以过期时间为18:30.

在squid,如果没有指明expires和max-age这二个的截止时间,那它就会使用发式截止时间,如参考 Last-Modified.
其实上面的max-age=18:20+600=18:30,这样算max-age不对,真实环境要这样算,max-age过期为http头中的Age=600过期.
注:Age域值是缓存服务器估计从响应产生或被原始服务器重新证实以来的总时间.age的值是缓存服务器算出来的,原始服务器是没有的.
前端面经 http缓存机制:强缓存(expires和cache-control)、协商缓存(Etag/If-None-Match和Last-Modified/If-Modified-Since) 关于强缓存和协商缓存为什么需要缓存机制缓存的过程第一次缓存再次请求强缓存(Expires/Cache-Control)ExpiresCache-Control协商缓存(Etag/If-None-Match和Last-Modified/If-Modified-Since)Last-Modified/If-Modified-SinceEtag/If-None-Match 为什么需要缓存机制 缓存机制的定义: 浏览器在用户的本地磁盘存储了用户最近请求的资源。当用户再次请求同一资源时,浏览器直接从本地磁盘读取资源 阅读详情

相关推荐

http协商缓存和强缓存

若是不存在强缓存,则在协商缓存中,客户端会发送带有缓存数据标识的请求头部字段,向服务器验证资源的有效性。Last-Modified 和 If-Modified-Since:服务器通过 Last-Modified 响应头告知客户端资源的最后修改时间。Expires的判断机制是:当客户端请求资源时,会获取本地时间戳,然后拿本地时间戳与Expires设置的时间做对比,如果对比成功,则走强缓存,对比失败,则向服务器发送请求。协商缓存(Last-Modified)需与If-Modified-Since配合。

weixin_39755186的博客 991

Max-age和Expires的区别是什么?

参考:Max-age和Expires的区别 1、Max-age max-age是HTTP/1.1中,指我们的web中的文件被用户访问(请求)后的存活时间,是个相对的值,相对Request_time(请求时间).单位秒 2、Expires 分为两种: 相对文件的最后访问时间(Atime):此时和max-age的值相等 绝对修改时间(MTime):此时Expires的初始值为文件创建时间;而Max-age的初始值为客户端请求数据的时间. ...

weixin_43912756的博客 3081

Apache Traffic Server在Ubuntu 14.04上的反向代理实战

反向代理是现代Web架构中实现负载均衡、SSL终止与缓存加速的核心技术。其底层原理涉及HTTP请求解析、流量重定向、缓存策略控制及TLS协议处理等关键环节。技术价值在于解耦前后端、提升响应性能并增强系统可观测性,广泛应用于老旧系统现代化改造、医疗/政务等强合规场景的边缘接入层。Apache Traffic Server凭借基于状态机的Remap引擎和精细到Header字段级的cache key控制能力,在Ubuntu 14.04等受限环境中仍能提供接近CDN边缘节点的调度精度与稳定性。

weixin_33938733的博客 775

OKHTTP缓存max-age和max-stale详解

一、前言       此前了解过OKHTTP的缓存的使用,并对缓存的使用进行了初步的总结https://blog.youkuaiyun.com/polo2044/article/details/80650856。缓存主要是为了在没有网络的情况下,或者资源不需要实时去后端进行更新时,可以直接从缓存中获取资源信息。一方面是能够在断网的情况下仍然给用户良好的界面展示,另一个方面是避免频繁的请求网络给后端带来压力。...

polo2044的专栏 5594

华为硬件逻辑岗笔试题(一)

积少成多,集腋成裘,坚持!!! 目录 1. 进制转换 2. 状态机和编码方式 3. 存储器的分类 4. Verilog语法中的操作符 5. 对组合逻辑的认识 6. 对时序逻辑的认识 7. 竞争冒险的认识 8. 基本时序逻辑电路 9. 建立时间和保持时间 10. 同步时序电路 11. 组合逻辑和时序逻辑判断 13. 基本总线的理解 14.加法器 15.FPGA开发工具 1. 进制转换 1、十进制46.25对应的二进制表达式为( )。 A 101110.11...

qq_42235129的博客 1万+

unity 在透明物体上投射阴影

unity版本:2019.4.16 创建一个shader,代码如下: Shader "ChuckLee/ARShadow" { Properties { _ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53) } SubShader { Tags{ "RenderType" = "Transparent" "Queue" = "Geometry+1" } Blend SrcAlpha OneMinusSrcAlph

Abel02的博客 2953

java expires_负载均衡环境中和如何设置Expires和Etag

在负载均衡环境中(LVS,LoadBalance)为了减少浏览器数据的重复请求操作,一般需要设置网络在负载均衡环境中(LVS, LoadBalance)为了减少浏览器数据的重复请求操作,一般需要设置 Http Header 的 Etage 和 Expires 告诉浏览器请求数据是否已过期。以下内容主要考虑Apache+squid 环境ETag Header是文件修改时间、文件大小和inode号生成...

weixin_36476826的博客 392

查看电脑mac地址+主机名+用户名并导出

张三:李四,应公司要求,今天下班前必须将这张表格里面用户电脑的mac地址统计出来!李四:我该怎么办呢?一个一个查看,太没有效率了吧!对了,我可以做一个bat脚本啊!

拥抱着青春 1974

负载均衡环境中和如何设置Expires和Etag

在负载均衡环境中(LVS, LoadBalance)为了减少浏览器数据的重复请求操作,一般需要设置 Http Header 的 Etage 和 Expires 告诉浏览器请求数据是否已过期。以下内容主要考虑Apache+squid 环境 ETag Header是文件修改时间、文件大小和inode号生成的校验(checksum),在多台服务器的负载均衡环境下会因部署内容的inode节点差异造成 E

yuchencn_mao的博客 560

Jenkins+docker 微服务实现自动化部署安装和部署过程

本文详细介绍了如何使用Docker部署Jenkins自动化服务器。主要内容包括:1)拉取Jenkins官方或BlueOcean镜像;2)创建容器并配置端口映射、数据卷挂载;3)设置防火墙规则;4)配置清华大学镜像加速;5)安装必要插件;6)SSH密钥配置;7)构建触发器设置;8)编写自动化构建脚本。通过Docker部署Jenkins可以简化安装流程,确保环境一致性,并利用容器特性实现快速启动和管理。文章提供了完整的配置步骤和注意事项,帮助用户快速搭建CI/CD环境。

qq_33665793的博客 1687

PCL点云八叉树体素中心下采样,体素包含点索引提取

基于PCL octree实现点云八叉树计算,支持提取体素中心点进行点云下采样;根据任一点坐标,可以得到其在八叉树中的位置,输出对应体素内其余点的坐标或者索引

qq_48694523的博客 462

http中设置过期时间Expires和max-age的区别

文章转自:https://www.cnblogs.com/fengye87626/p/3949553.html 主要重点在于我们要明白一个相对(Expires)一个绝对(max-age). 分别 max-age max-age是HTTP/1.1中,他是指我们的web中的文件被用户访问(请求)后的存活时间,是个相对的值,相对Request_time(请求时间). 例如:A....

一只快乐的小猴子的博客 1万+

低功耗设计-Power Switch

power gating与power switch cell

m0_61544122的博客 1万+

HTTP max-age与Expires的分别

主要重点在于我们要明白一个相对(Expires)一个绝对(max-age). 分别 max-agemax-age是HTTP/1.1中,他是指我们的web中的文件被用户访问(请求)后的存活时间,是个相对的值,相对Request_time(请求时间).例如:A.html 用户请求时间是18:00,max-age设置的是600的话,相当18:00+600秒过期,也就是相对18:00的时间后面600秒后...

weixin_30530339的博客 187

FPGA原型验证(七):如何选择、搭建原型验证平台?

本篇概要::讨论了在项目初期选择目标FPGA平台的重要性,包括自制板卡与购买现成板卡之间的决策。主要是为那些希望建立基于FPGA的原型平台的工程师和设计师提供了深入的技术细节和决策指导,无论是选择自制还是购买现成的解决方案。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 943

得物(毒)App潮鞋价格波动监控系统实战:从爬虫开发到数据可视化完整指南

本文将带领您从零开始构建一套完整的得物潮鞋价格监控系统,涵盖爬虫开发、数据存储、价格波动分析和可视化展示等全流程技术。我们将使用最新的Python技术栈,包括异步爬虫框架、智能代理池、反爬虫绕过技巧,以及基于机器学习的时间序列预测模型。无论您是想要追踪特定鞋款价格的潮流爱好者,还是希望构建商业级监控系统的开发者,这篇文章都将为您提供切实可行的解决方案。

2201_76125261的博客 2506

负载均衡环境中和如何设置Expires和Etag .

在负载均衡环境中(LVS, LoadBalance)为了减少浏览器数据的重复请求操作,一般需要设置 Http Header 的 Etage 和 Expires 告诉浏览器请求数据是否已过期。以下内容主要考虑Apache+squid 环境 ETag Header是文件修改时间、文件大小和inode号生成的校验(checksum),在多台服务器的负载均衡环境下会因部署内容的inode节点差异造成 E...

开发笔记 235

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

http 中设置过期时间expires和max-age的区别

文章转自:https://www.cnblogs.com/fengye87626/p/3949553.html 主要重点在于我们要明白一个相对(Expires)一个绝对(max-age). 分别 max-age max-age是HTTP/1.1中,他是指我们的web中的文件被用户访问(请求)后的存活时间,是个相对的值,相对Request_time(请求时间). 例如:A.html  用户请求...

yingzizizizizizzz的专栏 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

squid配置

一、概述 使用Apache2 做为源站,提供所有html、css、js、images文件的源。 前端使用Squid3.0做为反 向代理,提供文件内容的缓存。 在Apache2里,设置文件的过期信息(Expires头,Max-age头).如果这两个头都没有,则 SQUID认为内容不能被缓存。 一般地,图片文件和Flash,js文件可以设置为2个月,普通HTML文件设置为1周,其他为1天。具体...

程禹皓的专栏 246

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

负载均衡环境中和如何设置Expires和Etag(转载)

[code="java"] (2009-07-10 11:20:22) 转载 标签: http 杂谈 分类:php 在负载均衡环境中(LVS, LoadBalance)为了减少浏览器数据的重复请求操作,一般需要设置 Http Header 的 Etage 和 Expires 告诉浏览器请求数据是否已过期。以下内容主要考虑Apache+squid 环境。 ETag Head...

zhouzhouminmin的专栏 339

CentOS Squid 安装配置

安装 ./configure --disable-internal-dns make make install 修改squid.conf加以下两句 dns_children 20 redirect_children 20 再启动squid,哇........,这才是我要的squid!!!!!!!!!!!!! ps一下发现多了20个dns...

weixin_34358092的博客 106

Ubuntu 18.04 + Apache + Let‘s Encrypt 部署 HTTPS 实战指南

HTTPS 是现代 Web 服务的安全基石,其核心在于 SSL/TLS 协议实现的端到端加密与身份认证。Let's Encrypt 作为广受信任的免费证书颁发机构(CA),依托 ACME 协议实现自动化证书申请与续期,大幅降低 HTTPS 落地门槛。在 Ubuntu 18.04 这一广泛使用的 LTS 系统上,结合 Apache 2.4.x 的模块化配置能力,可构建稳定、合规且易于维护的 HTTPS 服务。该方案兼顾安全性(前向保密、HSTS、TLS 1.2+ 强制)、可用性(自动续期、301 重定向)与工

lizaochengwen的专栏 441

隐藏网络服务的版本信息

只要暴露在互联网上的服务器都有可能被不法分子利用成为被***的目标。标记服务的名称以及版本成为了他们最想要知道的信息,因此隐藏或者修改服务的版本信息可以有效的防止一部分恶意的***行为,下面介绍各个常见的网络服务修改方法:一、bind服务12345 # nslookup -q=txt -class=CHAOS version.bind. localhost Server: ...

weixin_33854644的博客 125

http的cache

http://blog.youkuaiyun.com/shine0181/article/details/6084542 HTTP Cache 学习2009-08-20 14:18   http协议里控制浏览器缓存的头有三个Cache-Control,Expires,Last-Modified 对于静态页面还有Etag。 一、先来看第一种情况:apache 静态页面 apache发送给客户端的静

一名普通码农的菜地 6579
上一篇: Apache mod_jk 的JkMount与JkUnMount差别
下一篇: HTTP头的Expires与Cache-control
wangruiling
博客等级 码龄20年 3粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值