百度云观测优化建议解决方案:未设置max-age或expires
网页的缓存是由 HTTP 消息头中的 “Cache-control” 来控制的,常见的取值有 private、no-cache、max-age、must-revalidate 等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:
(1) 打开新窗口
如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
Cache-control: max-age=5
表示当访问此网页后的5秒内再次访问不会去服务器。
(2) 在地址栏回车
如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。
(3) 按后退按扭
如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问
(4) 按刷新按扭
无论为何值,都会重复访问
当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。
另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问:
Expires: Fri, 31 Dec 1999 16:00:00 GMT
在ASP中,可以通过Response对象的Expires、ExpiresAbsolute属性控制Expires值;通过Response对象的CacheControl属性控制Cache-control的值,例如:
Response.ExpiresAbsolute = #2000-1-1# ' 指定绝对的过期时间,这个时间用的是服务器当地时间,会被自动转换为GMT时间
Response.Expires = 20 ' 指定相对的过期时间,以分钟为单位,表示从当前时间起过多少分钟过期。
Response.CacheControl = "no-cache"
Expires值是可以通过在Internet临时文件夹中查看临时文件的属性看到的。
Apache 主机解决方案:
Apache 设置缓存可以通过 mod_headers 模块修改 cache-control 来实现。
header set cache-control "max-age="3600"。
mod_expires 实例:
<Directory /opt>
ExpiresActive On
ExpiresDefault "accesss plus 3600 seconds" 如果是1秒,后面也是seconds
ExpiresByType application/octet-stream "accesss plus 1 months" 这是对特殊文件类型bin缓存1个月
<FilesMatch ^data.swf$> 针对opt目录下data.swf设置Expire值
ExpiresActive On
ExpiresDefault "accesss plus 60 seconds"
</FilesMatch>
</Directory>
mod_headers 实例:
<Directory /opt>
header set cache-control "max-age=3600"
<FilesMatch ^data.swf$>
header set cache-control "max-age=60"
</FilesMatch>
</Directory>
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
Nginx 主机解决方案:
Nginx 的 ngx_http_headers_module 模块可以对 Cache-Control 头相关的东西进行配置,例如:
if ($request_uri ~* "^/$|^/search/.+/|^/company/.+/") {
add_header Cache-Control max-age=3600;
}
if ($request_uri ~* "^/search-suggest/|^/categories/") {
add_header Cache-Control max-age=86400;
}
expires 的设置方法,增加至主机 conf 文件中:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~* \.(ico|gif|jpg|jpeg|png|bmp|swf)(\?[0-9]+)?$
{
expires max;
break;
}
通过 HTTP 的 META 设置 expires 和 cache-control 解决方案:
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta http-equiv="Expires" content="Mon, 18 Aug 2014 23:00:00 GMT" />
expires 用于设定网页的过期时间,也可设置为:
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Expires" content="0" />
CSS 中图片、字体及 JS 的 max_age 解决方案:
background-image:url(sprite/bg.png?max_age=31536000&d=05231747)
格式为?d=月日小时分钟,其他文件如此类推。
原文链接:http://www.imjeff.cn/blog/223/
百度云观测优化建议解决方案:未设置max-age或expires的更多相关文章
- Android推送服务——百度云推送
一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做 ...
- 百度云虚拟主机BCH安装PHP框架CodeIgniter
百度云虚拟主机BCH官方未支持CodeIgniter框架,本人参加php中文网活动获取一百度云虚拟主机,本人选的ThinkPHP版,但本人喜欢CodeIgniter框架,因此尝试在该主机上配置Code ...
- ADM pro破解百度云限速 ADM pro设置方法 ES文件管理器
ADM Pro打开ADM,[设置]–>[下载]–>[找下面的选项]:1.[User-Agent] –>选择[Custom]2.[Custom User-Agent]3.填写:netd ...
- ecmobile实现支付宝支付和百度云推送遇到的问题及解决方案(android)
1.首先检测支付账户是否开通快捷支付服务,如果开通后,那么公钥是否上传(支付宝问题一定要找支付宝客服解决,找其他人没有用,支付宝客服可以帮你分析底层原因) 2.修改app配置文件:alipay_cal ...
- 百度云分享文件自己设置password
我们在用百度云分享的时候都是百度云随机给我们生成的password.我们能够通过以下的一条js脚本代码来自己定义百度云分享password javascript:require(["func ...
- unity优化建议
使用Profiler工具分析内存占用情况 System.ExecutableAndDlls:系统可执行程序和DLL,是只读的内存,用来执行所有的脚本和DLL引用.不同平台和不同硬件得到的值会不一样,可 ...
- 百度云曲显平:AIOps时代下如何用运维数据系统性地解决运维问题?
百度云智能运维负责人 曲显平 本文是根据百度云智能运维负责人曲显平10月20日在msup携手魅族.Flyme.百度云主办的第十三期魅族技术开放日<百度云智能运维实践>演讲中的分享内容整理而 ...
- 解密国内BAT等大厂前端技术体系-百度篇(长文建议收藏)
1 引言 整个业界在前端框架不断迭代中,也寻找到了许多突破方向,例如跨平台中的RN.Flutter,服务端GraphQL.Serverless,前端和客户端的融合越来越紧密,前端在Node和Elect ...
- Android,百度,云知声tts总结
最近在做Android语音播报功能(TTS),现总结如下:(ps:demo代码地址:https://github.com/giserlong/TTS_DEMO) 一.Android原生接口 用Andr ...
随机推荐
- 移动端app测试
对于手机项目(应用软件),主要是进行系统测试. 而针对手机应用软件的系统测试,我们通常从如下几个角度开展测试工作: 功能模块测试: 交叉事件测试: 性能测试: 安全测试: 容量测试: 兼容性测试: 接 ...
- iPhone开发:Objective C 代码规范-iOS总结版
一,关于空行 A:.h中的空行 1,文件说明与头文件包涵(#import)之间空1行 2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行 3,头文件包涵(#import)与@cl ...
- VMware虚拟机ping出现DUP!
VMware虚拟机ping出现DUP! ping 外网, 还是ping 网关都出现DUP! 百度查了许久,各种方法都无效,无奈只能google看老外的方法. http://codeblog.co. ...
- 剑指offer之O(1)算法删除指针所指向的节点
题目如图: 1.把要删除pToBeDeleted的节点的后面节点覆盖点要删除的节点pToBeDeleted 2.要考虑如果删除的节点是最后一个节点怎么办 3.要考虑如果总共只有一个节点,删除的是头结点 ...
- Powershell错误处理,try catch finally
脚本的调试向来是一个艰巨的任务,在powershell出现以前简直是一场灾难.在powershell中微软终于做出了诸多改进,不但有了$Error.-whatif,也有了ISE.而在语法上也增加了tr ...
- elasticsearch 重启后,需要的操作
如果elasticsearch 集群挂了,请勿开启Logstash 同步数据,需等待elasticsearch集群恢复后,在继续写入
- yum 使用说明
linux如何安装yum 使用YUM来安装软件,就可以不用去到处找依赖关系的RPM了.很方便. 第一步:安装yum 第二步:下载createrepo包并安装 下载地址: ftp://195.220. ...
- 【HDOJ】1057 A New Growth Industry
纯粹的模拟题目. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 20 # ...
- 2014-08-13 SQL语句之Left Join
今天是在吾索实习的第26天.这天在处理数据库数据的时候发现了一个不错的语句就是Left Join,即左连接. 其功能是:即使右表中没有匹配,也从左表返回所有的行.也就是说,显示的行数与左表一致,且当 ...
- Java---设计模块(值对象)
★ 场景和问题 在Java开发时,需要来回交换大量的数据,比如要为方法传入参数,也要获取方法的返回值,该如何能更好的进行数据的交互? ★ 基本的编写步骤 ◎第1步:写一个类,实现可序列化(如果以后数据 ...