Apache + Etags -> 返回 200 并发送内容而不是 304

2024-01-29

我有一个使用 Etags 的 Apache conf:

<VirtualHost *:8080>
        ServerName xxx.co
        SSLEngine On
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
        SSLCertificateFile /etc/apache2/xxx.crt
        SSLCertificateKeyFile /etc/apache2/xxx.key
        SSLCertificateChainFile /etc/apache2/sub.class1.server.ca.pem
        SSLCACertificateFile /etc/apache2/ca.pem
        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

  ServerAdmin [email protected] /cdn-cgi/l/email-protection
  DocumentRoot /home/ubuntu/xxx-react/build/  
  Header set Access-Control-Allow-Origin "*"
  FileETag MTime Size
</VirtualHost> 

我收到来自 Chrome 调试器的请求/响应:

Remote Address:xxx:8080
Request URL:https://xxx.co:8080/app.js
Request Method:GET
Status Code:200 OK

Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate
Accept-Language:en,fr-FR;q=0.8,fr;q=0.6,en-US;q=0.4,ms;q=0.2
Cache-Control:max-age=0
Connection:keep-alive
Host:xxx.co:8080
If-Modified-Since:Fri, 26 Sep 2014 10:42:18 GMT
If-None-Match:"5a59c6-503f59239d4ce-gzip"
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36

Response Headersview source
Accept-Ranges:bytes
Access-Control-Allow-Origin:*
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:application/javascript
Date:Fri, 26 Sep 2014 15:49:45 GMT
ETag:"5a59c6-503f59239d4ce-gzip"
Keep-Alive:timeout=5, max=100
Last-Modified:Fri, 26 Sep 2014 10:42:18 GMT
Server:Apache/2.4.6 (Ubuntu)
Transfer-Encoding:chunked
Vary:Accept-Encoding

正如我们所看到的,标头中发送的 Etag 与响应中的文件相匹配,所以有人可以解释一下为什么 Apache 返回 200 而不是 304,从而在缓存应该工作时产生缓存未命中吗?

Thanks


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache + Etags -> 返回 200 并发送内容而不是 304 的相关文章

随机推荐