gpt4 book ai didi

google-chrome - 浏览器在 HTTP 304 的情况下返回错误的内容

转载 作者:可可西里 更新时间:2023-11-01 16:30:27 26 4
gpt4 key购买 nike

以下测试用例导致 Chrome 34.0.1847.116m 和 Firefox 28 在收到 HTTP 304 后返回(我认为是)不正确的响应。

  1. 客户端请求 GET http://example.com/companies/1/ 使用 Accept: text/html
  2. 服务器返回表示 A 和一些 header 。
  3. HTML 中的 Javascript 使客户端请求 GET http://example.com/companies/1/ 使用 Accept: application/vnd.com.mycompany.something+json ;版本=1
  4. 服务器返回表示 B 和不同的 header 。
  5. 现在...按 F5 键重新加载页面。
  6. 重复步骤 1-4,除了服务器为所有请求返回 HTTP 304
  7. 第 1 步按预期返回 A 和第一组 header ,但第 4 步返回A 和第一组 header ,这是出乎意料的。

意思是,尽管请求 Accept 已更改,但浏览器仍返回相同的缓存响应(正文和 header )。我期待最后一个请求返回 B 和第二组 header 。

我做错了什么吗?或者这是 Chrome 和 Firefox 中的错误?

最佳答案

回答我自己的问题:

根据 https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p6-cache-26#page-6https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p6-cache-26#section-4.1如果响应需要协商,服务器必须返回一个 Vary 头。此 header 指示协商过程中涉及哪些 header 。缺少此 header 意味着响应完全基于 URI。

在我的例子中,返回 Vary: Accept 解决了这个问题。

关于google-chrome - 浏览器在 HTTP 304 的情况下返回错误的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com