我有这些由服务器发送到客户端的头信息:
Cache-Control:private
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html
Date:Sun, 27 Nov 2011 11:10:38 GMT
ETag:"12341234"
Set-Cookie:connect.sid=e1u...7o; path=/; expires=Sun, 27 Nov 2011 11:40:38 GMT; httpOnly
Transfer-Encoding:chunked
last-modified:Sat, 26 Nov 2011 21:42:45 GMT
我希望客户端能够验证服务器上的文件是否已更改,如果未更改则发送“200”,否则发送“304”。
Firefox 发送:
if-modified-since: Sat, 26 Nov 2011 21:42:45 GMT
if-none-match: "12341234"
为什么刷新页面时Chrome没有发送相同的内容?我希望的行为是与.Net运行时相同的:
context.Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate)
:
后面的行为。看着标签,我试图在 node.js 中模仿这种行为。 - Askenif-none-match
)发出浏览器请求,因此这与服务器有关,而与客户端无关。 Etag是由服务器端创建的,与客户端无关。我需要知道的是从服务器发送到客户端的内容,以使它在Chrome中也发送etag标头。选择的答案是唯一正确的,因为它告诉服务器也发送if-none-match
。 - Asken