我有点困惑的是,给定具有以下签名的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作为反向代理。