我在我的 Apache httpd.conf 中添加了以下行:-
AddOutputFilterByType DEFLATE text/html text/css application/javascript application/x-javascript application/json
我有一个包含脚本的 html 文件(test.html):-
<script type="text/javascript" src="/test.js"></script>
问题是,每次我加载 test.html 时,test.js 也会加载 HTTP 状态:200。
问题是:为什么不满足条件 GET?
如果我注释掉 httpd.conf 中的“AddOutputFilterByType”行,Apache 会发送 304。
如果我在 httpd.conf 中启用 AddOutputFilterByType,请求标头是:-
主持人:优化 用户代理:Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 GTB5 (.NET CLR 3.5.30729) FirePHP/0.2.4 接受: */* 接受语言:en-us,en;q=0.5 接受编码:gzip,放气 接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.7 保活:300 连接:保持活动 参考:http://optimize/ 饼干:PHPSESSID=nbq6h0eeahkshkcbc6ctu2j2b4 If-Modified-Since: 2009 年 5 月 19 日星期二 07:06:46 GMT 如果-无匹配:“2000000000717f-2c25a-46a3e8dcc2ad8”-gzip 缓存控制:max-age=0
响应头是:-
日期:格林威治标准时间 2009 年 5 月 22 日星期五 07:03:40 服务器:Apache/2.2.9 (Win32) PHP/5.2.6 最后修改时间:2009 年 5 月 19 日星期二 07:06:46 GMT Etag:“2000000000717f-2c25a-46a3e8dcc2ad8”-gzip 接受范围:字节 变化:接受编码 内容编码:gzip 内容长度:52583 保活:超时=5,最大值=98 连接:保持活动 内容类型:应用程序/javascript
更新:我注意到,如果我禁用 ETag,它可以正常工作。我的意思是它发送304。
FileETag None
但我真的很想保持 ETag 原样(我知道存在 inode 披露问题)。