当前位置: 首页 > 知识库问答 >
问题:

服务器响应一个浏览器的GET请求,状态为304,另一个为200

纪晨
2023-03-14

我正在尝试调试我的<代码>。htaccess文件,其中包含:

<FilesMatch "\.(html|swf)$">
  <IfModule mod_headers.c>
      Header set Cache-Control "no-cache, public"
  </IfModule>
</FilesMatch>

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType text/html                     "access plus 0 seconds"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
</IfModule>

在反复访问Safari中看到的同一网页时:

名称 = 包装.html, 方法 = GET, 状态 = 200 (正常), 类型 = 文本/html

名称=应用.html,方法=GET,状态=200(正常),类型=应用/x冲击波闪存

Chrome:

名称=包装器。html,方法=GET,状态=304(未修改),类型=text/html

名称=应用.html,方法=GET,状态=304(未修改),类型=应用/x冲击波闪存

问题是Safari应该从缓存中检索时从服务器下载,而Chrome正确地从缓存中检索。

那么,如何将status=304从服务器Safari(如Chrome所见)?(我猜这是根本原因,如果不是,请告诉我)

更新

我刚刚检查了缓存文件,似乎Safari没有首先将下载的文件放入缓存中,以便将来访问时从中提取。不知道为什么。

共有1个答案

林英朗
2023-03-14

这与服务器和 htaccess 文件没有任何关系。Safari 发送的请求需要一个 If-Modified-Since 标头,否则如果上次修改时间早于请求中的时间,则 apache 不会以 304 响应。

我不知道为什么Safari不发送标题,或者它只是偶尔发生或者与某处的一些浏览器设置有关。但这种事不只发生在你身上。

 类似资料:
  • 我一直在使用响应模板来提供动态响应,因为所有请求和查询参数都与该请求本身相关联。但是,我想使用多个参数发出 POST 请求,然后通过使用响应模板在存根 GET 方法的正文响应中使用这些参数。这在电线中可以做些什么吗?任何输入都非常感谢,谢谢!

  • 问题内容: 我正在尝试请求位于另一个域/服务器上的数据,但是在尝试发送请求时出现异常。 错误: 未捕获的异常:[异常…“组件返回的故障代码:0x80004005(NS_ERROR_FAILURE)” nsresult:“ 0x80004005(NS_ERROR_FAILURE)” 这是请求不在同一域/服务器上的内容的正确方法吗?还是有其他方法可以做到这一点? 我正在firefox 8.0中对此进行

  • 我正在尝试发送这样的帖子请求: 我使用的是Apache服务器,这是我的<代码>。htaccess文件 无论何时发送请求,都会出现以下错误: 为什么会这样?我曾经使用Steam获取请求,它们工作正常,但这个帖子请求似乎不起作用。 编辑:这是steamcommunity。com的机器人。txt文件: 上面写着,所以这就是我收到错误的原因吗?

  • 浏览器端,怎么发一个 http2 的请求?

  • 我正在尝试使用spring的RestTemplate将文件下载结果直接流式传输到另一个帖子中 我目前的做法如下: 但是,在运行上述代码时,我遇到以下异常: 似乎响应总是作为处理的最后一步而结束。通过响应,关闭,流不再可处理。 我希望能够实现这个场景,而不必将文件完全保存在内存中或将其写入文件(如此处所述)。 非常感谢任何提示。

  • 我的代码工作正常,但当我试图从后端获取数据时,我收到一个错误“400错误请求”,我不知道发生了什么错误。请解决我的问题。 //API==http://localhost:8000/api/ 指数js公司 在这里,我分享了我的实际代码,其中添加操作被执行到表单中。js公司 $$$$$$$$$$$$$$$ 后端 $$$$$$$$$$$$$$$$$$$$$ 待办事项。js/路由器 待办事项。js/控制器