gpt4 book ai didi

php - 我想连同 304 响应一起发送哪些 header ?

转载 作者:IT王子 更新时间:2023-10-29 00:17:46 25 4
gpt4 key购买 nike

当我发送 304 响应时。浏览器将如何解释我与 304 一起发送的其他 header ?

例如

header("HTTP/1.1 304 Not Modified");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");

这会确保浏览器不会发送另一个有条件的 GET 请求(也不是任何请求)直到 $offset 时间“用完”吗?

此外,其他 header 呢?

我是否应该将这样的 header 与 304 一起发送:

header('Content-Type: text/html');

我必须发送:

header("Last-Modified:" . $modified);
header('Etag: ' . $etag);

要确保浏览器在下次 $offset“用完”时发送条件 GET 请求,还是只是保存旧的 Last Modified 和 Etag 值?

在发送 304 响应 header 时,我还应该注意其他事项吗?

最佳答案

blog post为了驯服“有条件获得”的野兽,对我帮助很大。

一段有趣的摘录(部分与 Ben 的回答相矛盾)指出:

If a normal response would have included an ETag header, that header must also be included in the 304 response.

Cache headers (Expires, Cache-Control, and/or Vary), if their values might differ from those sent in a previous response.

这完全符合 RFC 2616 sec 10.3.5 .


低于 200 请求...

HTTP/1.1 200 OK
Server: nginx/0.8.52
Date: Thu, 18 Nov 2010 16:04:38 GMT
Content-Type: image/png
Last-Modified: Thu, 15 Oct 2009 02:04:11 GMT
Expires: Thu, 31 Dec 2010 02:04:11 GMT
Cache-Control: max-age=315360000
Accept-Ranges: bytes
Content-Length: 6394
Via: 1.1 proxyIR.my.corporate.proxy.name:8080 (IronPort-WSA/6.3.3-015)
Connection: keep-alive
Proxy-Connection: keep-alive
X-Junk: xxxxxxxxxxxxxxxx

...以及它的最佳有效 304 对应项。

HTTP/1.1 304 Not Modified
Server: nginx/0.8.52
Date: Thu, 18 Nov 2010 16:10:35 GMT
Expires: Thu, 31 Dec 2011 16:10:35 GMT
Cache-Control: max-age=315360000
Via: 1.1 proxyIR.my.corporate.proxy.name:8080 (IronPort-WSA/6.3.3-015)
Connection: keep-alive
Proxy-Connection: keep-alive
X-Junk: xxxxxxxxxxx

请注意,根据 RFC-2616 14.21Expires header 最多为 当前日期 + 一年 .

关于php - 我想连同 304 响应一起发送哪些 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/691318/

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