Ctrl+Refresh 和 Ctrl+Shift+Refresh 之间的区别?

Ctrl+Refresh 和 Ctrl+Shift+Refresh 之间的区别?

我理解Ctrl+ Refresh 会从浏览器获取最新内容,而无需读取缓存。那么Ctrl+ Shift+ Refresh 是用来做什么的呢?

Ctrl+ 刷新请求头如下:

Cache-Control : max-age=0

Ctrl++Shift刷新

Pragma : no-cache <br>
Cache-Control : no-cache

真正的区别是什么?

答案1

两者与本地计算机上的浏览器完全相同。您提到的标头是唯一的区别。

Ctrl+Refresh 标头意味着沿途的任何缓存服务器都应返回页面的最新副本。

Ctrl+Shift+Refresh 标头意味着沿途的任何缓存服务器都应返回页面的全新副本,并且不应为任何未来请求缓存该页面。换句话说,下次请求该页面时,它应该使用页面的先前缓存或请求全新副本,但不应使用当前副本。

Pragma: no-cache 是 Cache-Control: no-cache 的 HTTP 1.0 版本。没有与 Cache-Control: max-age=0 等效的 HTTP 1.0 版本。

RFC2616第14节第9小节有相关信息:w3c.org:RFC2616 第 14.9.1 节

答案2

还有一个区别,而且是一个很大的区别。

当您按下 Ctrl+Refresh 时,对于每个带有Last-Modified或标头的缓存对象,浏览器将发出带有或标头的ETag请求。然后,服务器可以选择使用 , 进行响应,而不重新发送任何数据(假设数据实际上未被修改)。If-Modified-SinceIf-None-Match304 Not Modified

当您按下 Ctrl+Shift+Refresh 时,浏览器将不会发出此类条件If-*标头,服务器别无选择,只能再次发送数据。

相关内容