Browser HTTP头-缓存问题
我正在向图像发出请求,返回的响应标题为:Browser HTTP头-缓存问题,browser,cache-control,Browser,Cache Control,我正在向图像发出请求,返回的响应标题为: Accept-Ranges:bytes Content-Length:4499 Content-Type:image/png Date:Tue, 24 May 2011 20:09:39 GMT ETag:"0cfe867f5b8cb1:0" Last-Modified:Thu, 20 Jan 2011 22:57:26 GMT Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET 请注意,没有缓存控制标题 在Ch
Accept-Ranges:bytes
Content-Length:4499
Content-Type:image/png
Date:Tue, 24 May 2011 20:09:39 GMT
ETag:"0cfe867f5b8cb1:0"
Last-Modified:Thu, 20 Jan 2011 22:57:26 GMT
Server:Microsoft-IIS/7.5
X-Powered-By:ASP.NET
请注意,没有缓存控制
标题
在Chrome上的后续请求中,Chrome知道去缓存检索图像。它如何知道如何使用缓存?我当时的印象是,我必须使用
缓存控制
头告诉它。您既有ETag
头,也有上次修改的
头。它可能使用这些。但要实现这一点,如果没有匹配的或自以来修改的,它仍然需要使用发出请求。您有一个ETag
和一个上次修改的
头。它可能使用这些。但是要实现这一点,如果没有匹配的
,它仍然需要使用发出请求;如果自
以来进行了修改,它仍然需要使用发出请求。要设置缓存控件,您必须自己指定它。您可以在web.config、选定文件夹(静态、图像…)的IIS管理器中进行设置,也可以在代码中进行设置。HTTP 1.1标准建议未来一年为最长到期时间
对于站点中的所有静态内容,将过期日期设置为一年被认为是良好的实践。如果在头文件中没有它,则修改后会导致,因为
请求可能比第一次请求小静态文件所需的时间更长。在这些调用中,使用ETag头
当您有缓存控制时:max age=315360000
基本HTTP响应的数量将超过,如果从>
调用后进行修改,因此最好删除ETag头并生成较小的静态文件响应头。IIS没有相应的设置,因此您必须执行response.Headers.Remove(“ETag”)代码>在OnPreServerRequestHeaders()中
如果你想进一步优化你的头文件,你可以在IIS设置中删除X-Powered-By:ASP.NET
,在system.web/httpRuntime元素中删除X-Aspnet-Version
头文件(尽管我在你的响应中没有看到)
有关更多提示,我建议您阅读一本好书-来设置缓存控件,您必须自己指定它。您可以在web.config、选定文件夹(静态、图像…)的IIS管理器中进行设置,也可以在代码中进行设置。HTTP 1.1标准建议未来一年为最长到期时间
对于站点中的所有静态内容,将过期日期设置为一年被认为是良好的实践。如果在头文件中没有它,则修改后会导致,因为
请求可能比第一次请求小静态文件所需的时间更长。在这些调用中,使用ETag头
当您有缓存控制时:max age=315360000
基本HTTP响应的数量将超过,如果从>
调用后进行修改,因此最好删除ETag头并生成较小的静态文件响应头。IIS没有相应的设置,因此您必须执行response.Headers.Remove(“ETag”)代码>在OnPreServerRequestHeaders()中
如果你想进一步优化你的头文件,你可以在IIS设置中删除X-Powered-By:ASP.NET
,在system.web/httpRuntime元素中删除X-Aspnet-Version
头文件(尽管我在你的响应中没有看到)
有关更多提示,我建议您阅读一本好书-由于请求调用中的
,因此我看不到修改后的。其他浏览器是否使用ETag和上次修改?是否由浏览器来实现?我是否也应该向下发送缓存控制
标题?谢谢。ETag
和Last Modified
都希望浏览器发出另一个请求,然后以200或304响应。浏览器本身不应该简单地保留它们。Chrome在这里有点不同,因为我注意到它确实保存了文件,即使没有指示它保存文件。发送Cache Control
并指定过期日期总是一个好主意。我看不到是否在请求调用中修改,因为。其他浏览器是否使用ETag和上次修改?是否由浏览器来实现?我是否也应该向下发送缓存控制
标题?谢谢。ETag
和Last Modified
都希望浏览器发出另一个请求,然后以200或304响应。浏览器本身不应该简单地保留它们。Chrome在这里有点不同,因为我注意到它确实保存了文件,即使没有指示它保存文件。发送缓存控制并指定过期日期总是一个好主意。