[i]ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
BrowserMatch "MSIE" brokenvary=1
BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
BrowserMatch "Opera" !brokenvary
SetEnvIf brokenvary 1 force-no-vary[/i]
Run Code Online (Sandbox Code Playgroud)
最近在样本.htaccess中看到了这段代码.
推测ExpiresByType设置图像的到期时间 - 是否与访问者浏览器缓存有关?以及A2592000转化为什么?
什么是"brokenvary = 1"意味着什么?我收集它正在寻找UserAgent,但接着是什么?
谢谢!
Gum*_*mbo 10
推测ExpiresByType设置图像的到期时间 - 是否与访问者浏览器缓存有关?
是.mod_expires允许根据类型轻松设置过期规则.
但是到期时间仅指定某个响应的新鲜时间.这并不一定意味着响应是可缓存的.但总的来说,除非有限制,否则任何成功的响应都是可缓存的:
除非受到缓存控制(第14.9节)指令的特别约束,否则缓存系统可能总是将成功的响应(参见第13.8节)存储为缓存条目,如果它是新的则可以返回它而不进行验证,并且可以在成功验证后返回它.
因此,除非您指定不存储响应(即使用no-store),否则响应可以由公共缓存(共享缓存)和私有缓存(本地缓存)存储.
A2592000转化为什么?
可以使用绝对时间值(例如"2010-10-09")或相对时间值(例如"明天")来表示响应的新鲜时间.日期格式A2592000使用后一个时间值A表示访问时间,并且2592000是添加的秒数.所以A2592000意味着" 从访问时起2592000秒 ".
什么是"破碎的= 1"意味着什么?我收集它正在寻找UserAgent,但接着是什么?
Apache有一些特殊用途的环境变量,其中force-no-vary之一是:
这会导致
Vary在将响应标头发送回客户端之前从响应标头中删除任何字段.有些客户没有正确解释这个字段; 设置此变量可以解决此问题.设置此变量还意味着force-response-1.0.
现在,Vary头字段用于指定服务器用于在多个表示中选择响应的头字段名称列表:
服务器应该使用Vary头字段来通知缓存哪些请求头字段用于在服务器驱动的协商的可缓存响应的多个表示中进行选择.
因此,如果您正在使用内容协商和所请求的通用URL,/document.html并且该资源有多种表示形式(例如英语和德语),并且您的服务器选择德语变体,因为Accept-Language表示该值de,服务器将包括一个Vary字段,包含Accept-Language让缓存知道选择是基于Accept-Language的值.
但是一些用户代理没有做到这一点.在这种情况下,不应发送可通过设置专用环境变量来完成的Vary头字段force-no-vary.
| 归档时间: |
|
| 查看次数: |
12194 次 |
| 最近记录: |