当前位置: 首页 > 面试题库 >

Chrome浏览器未将if-modified-since标头发送到服务器

方鸿羲
2023-03-14
问题内容

我将这些标头由服务器发送到客户端:

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”。

Firefox发送:

if-modified-since: Sat, 26 Nov 2011 21:42:45 GMT
if-none-match: "12341234"

chrome为什么不刷新页面发送相同的消息?我追求的是.Net运行的行为:

context.Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate)

问题答案:

以我的经验,您不仅需要“私有” Cache-Control标头。您需要“ Max-Age”或“ Expires”来强制Chrome重新验证服务器上的内容。

请记住,重新验证只会在这些时间值过去之后开始,因此可能需要将它们设置为较小的值。



 类似资料:
  • 这可能是一个非常基本的问题,但我已经没有想法了 改装v2。4.0不会发送自头修改后的,因此缓存不起作用。 我每天轮询服务器几次,看看是否有任何更新的数据,因此需要如果修改自头。 基于本文,设置非常简单:https://futurestud.io/tutorials/retrofit-2-activate-response-caching-etag-last-modified 我读过几篇相关文章,但

  • 我正在用PHP生成动态内容。 我正在发送以下HTTP标头: 我稍后会检查Etag是否发送匹配的。这与Chrome和Firefox完美配合。但是,Safari(版本6.0.2)不发送“If-Modified-From”和“If-Node-Match”标头。这是Safari在第二页点击时发送的请求标头: 该页面上链接的所有其他文件都会收到正确的请求头,Safari会在适当的时候使用缓存文件或304。

  • If-Modified-Since请求的HTTP标头发出请求的条件:服务器会发送回所请求的资源,用200状态,只有当它已经给定的日期之后被最后修改。如果请求没有被修改,那么响应将是304没有任何主体的;Last-Modified头将包含最后一次修改的日期。不同于If-Unmodified-Since,If-Modified-Since只能与GET或HEAD一起使用。 与组合使用时If-None-M

  • 我正在开发一个基于云的后端HTTP服务,该服务将公开用于与一些on-prem系统的集成。客户机系统是由外部供应商定制的,它们是带有自己数据库的后端系统。这些系统部署在我们客户的公司中,我们无法访问它们,也无法控制它们。我们向供应商提供我们的API规范,他们实现客户机代码。 我的服务与客户交换的数据格式基于XML,并遵循一定的标准。供应商用不同的编程语言实现他们的客户机系统,随着时间的推移,新的供应

  • 在这个网站上,你可以输入你的学生卡号,然后它会显示卡上还有多少钱。在java中是否可以这样做,例如使用JSOUP?。在将卡号发送到服务器时,我如何知道应该使用什么标题等?当我使用chromes开发工具时,我会得到如下所示的标题信息 我能以某种方式使用这些信息吗? 所以基本上我想要的是用JAVA得到剩下多少钱。 编辑: 这是我当前的代码: 这给了我这个错误: 如果我只有<代码>。data(“txtC

  • 我已经实现了一个使用基本身份验证(使用Spring Security性)的web服务器。 我在访问URL时禁用了默认身份验证入口点(它只返回401,而不是用www身份验证标头响应401),目的是防止浏览器显示身份验证弹出窗口。 我能够用javascript代码和命令行工具(如curl)连接到服务器,但是当我用浏览器(chrome)测试它时 <代码>curl-v-u用户:密码本地主机:8080/用户