Cache-Control
如果您在同一标签中重新加载,Chrome 似乎会忽略您的设置。如果您将 URL 复制到新选项卡并在那里加载,Chrome 将尊重缓存控制标签并重用缓存中的内容。
例如,我有这个 Ruby Sinatra 应用程序:
#!/usr/bin/env ruby
require 'sinatra'
before do
content_type :txt
end
get '/' do
headers "Cache-Control" => "public, must-revalidate, max-age=3600",
"Expires" => Time.at(Time.now.to_i + (60 * 60)).to_s
"This page rendered at #{Time.now}."
end
当我在同一个 Chrome 选项卡中不断重新加载它时,它会显示新时间。
This page rendered at 2014-10-08 13:36:46 -0400.
This page rendered at 2014-10-08 13:36:48 -0400.
标题看起来像这样:
< HTTP/1.1 200 OK
< Content-Type: text/plain;charset=utf-8
< Cache-Control: public, must-revalidate, max-age=3600
< Expires: 2014-10-08 13:36:46 -0400
< Content-Length: 48
< X-Content-Type-Options: nosniff
< Connection: keep-alive
* Server thin is not blacklisted
< Server: thin
但是,从多个新选项卡访问相同的 URLhttp://localhost:4567/
会从缓存中回收先前的结果。