Is Chrome ignoring Cache-Control: max-age?

前端 未结 8 1790
南旧
南旧 2020-11-27 02:56

Background:

  • IIS 7
  • AspNet 3.5 web app

Chrome dev tools lists 98 requests for the home page of the web app (aspx + js + css + images). I

8条回答
  •  佛祖请我去吃肉
    2020-11-27 03:30

    Chrome appears to be ignoring your Cache-Control settings if you're reloading in the same tab. If you copy the URL to a new tab and load it there, Chrome will respect the cache control tags and reuse the contents from the cache.

    As an example I had this Ruby Sinatra app:

    #!/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
    

    When I continuously reloaded it in the same Chrome tab it would display the new time.

    This page rendered at 2014-10-08 13:36:46 -0400.
    This page rendered at 2014-10-08 13:36:48 -0400.
    

    The headers looked like this:

    < 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
    

    However accessing the same URL, http://localhost:4567/ from multiple new tabs would recycle the previous result from the cache.

提交回复
热议问题