• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~! QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

浏览器缓存机制与Apache设置缓存

详解浏览器缓存机制

对于,如何说明缓存机制,在网络上找到了两张图,个人认为思路是比较清晰的。总结时,上图。

这里需要注意的有两点:

1、Last-Modified、Etag 是响应头里的数据

2、If-None-Match、If-Modified-Since 是请求头里的数据

Last-Modified/If-Modified-Since 这种搭配,好像已经过时了。在测试时,就是关掉 etag,并时间过期了,服务器也照样返回 304。

Etag/If-None-Match 这种搭配,还挺好用的。测试时,可用。那就解释下什么是 etag?什么是 if-none-match?

etag:当前资源的唯一标识。是文件的索引节、文件大小、文件创建时间组合的 hash。

if-none-match:这就是上面 etag 的 copy。但是,请求服务器时,如果发现 if-none-match 与 etag 不对应时,就说明文件被修改了,这时返回 200,重新获取文件,没修改则返回 304,继续使用缓存文件。

好了,可以看流程图了。

首次访问页面时的流程

浏览器缓存机制与 Apache 设置缓存

再次访问页面时的流程

浏览器缓存机制与 Apache 设置缓存

第一次看的时候有点蒙,于是,又给装修了下。再次亮图。

浏览器缓存机制与 Apache 设置缓存

以上几张流程图就很好说了浏览器的缓存机制。

Apache 设置缓存

使用Apache的.htaccess 设置缓存有三种方法

第一种方法:

Apache开启 mod_expires.so 模块

在配置文件中打开:LoadModule expires_module modules/mod_expires.so

在.htaccess 添加以下内容

<IfModule mod_expires.c>
#打开缓存
ExpiresActive On
#默认对所有资源缓存 600 秒
ExpiresDefault A600
#png 格式的资源缓存 5 秒
ExpiresByType image/png A5
#jpg 格式的资源缓存 50 秒
ExpiresByType image/jpg A50

#好含这些后缀的资源,都缓存 100 秒
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A100
</FilesMatch>
</IfModule>

第二种方法:

Apache开启 mod_headers 模块

去配置文件中添加以下内容:

LoadModule headers_module modules/mod_headers.so

在.htaccess 中添加内容:

#包含这些后缀的资源都缓存 33 秒
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=33"
</FilesMatch>

第三种方法:

在.htaccess 添加以下内容:

FileEtag INode Mtime Size

要关闭 etag,则添加以下内容:

FileEtag none

经过测试,这几种方法同时使用,则会出现优先级:

第三种方法>第二种方法>第一种方法

还发现了一些小知识,Apache不缓存能解析的资源文件,比如 php、php3 等。如果修改配置文件,致使可以解析 jpg 格式的文件,那就不能缓存 jpg 格式的文件。可在配置文件中,添加以下代码,做测试:

AddType application/x-httpd-php .jpg

参考网页:

http://www.cnblogs.com/skynet/archive/2012/11/28/2792503.html

http://my.oschina.net/leejun2005/blog/369148

http://yixun.yxsss.com/yw13.html


版权声明:本站所有文章和资源使用BY-NC-SA协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->浏览器缓存机制与 Apache 设置缓存!在下边可以分享本文哦!
本文最后更新于2017年12月14日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址