HTTP条件GET无法正常工作

时间:2018-04-05 19:29:40

标签: http browser-cache

我有点困惑的是,给定具有以下签名的GET请求的实际行为应该是什么。

请求网址https://some-web-server/assets/views/header.html
200响应状态代码和响应标题

的响应很好

响应标题:

Cache-Control: public, max-age=3600  
Cache-Control: no-cache  
Connection: Keep-Alive  
Content-Encoding: gzip  
Content-Length: 1312  
Content-Type: text/html; charset=utf-8  
Date: Thu, 05 Apr 2018 18:44:56 GMT  
ETag: 2f7b535ad0a129b93a432f997b09785e  
Expires: Thu, 01 Dec 1994 16:00:00 GMT  
Keep-Alive: timeout=5, max=100  
Last-Modified: Sat, 31 Mar 2018 11:07:28 GMT  
Server: Apache/2.4.28 (Unix) OpenSSL/1.0.1j  
Vary: Accept-Encoding  

据我所知,作为响应,Cache-Control Header被设置为no-cache,所以下次当我点击相同的请求时,服务器应该发送304而不是200,因为内容在服务器上没有变化
但响应总是200 OK

请求标题

GET /assets/views/header.html HTTP/1.1  
Host: some-web-server  
Connection: keep-alive  
Accept: application/json, text/plain, */*  
X-Requested-With: XMLHttpRequest  
Accept-Encoding: gzip, deflate, br  
Accept-Language: en-US,en;q=0.9  
If-None-Match:    2f7b535ad0a129b93a432f997b09785e  
If-Modified-Since: Sat, 31 Mar 2018 11:07:28 GMT  

如果我遗漏了一些明显的东西,请帮助一些人。或者网络服务器可能不支持条件GET。 我正在使用Play框架2.x版本与Apache作为反向代理。

0 个答案:

没有答案