gpt4 book ai didi

nginx - 缓存控制 header 重复;有效与否? (Nginx)

转载 作者:行者123 更新时间:2023-12-01 16:13:22 31 4
gpt4 key购买 nike

我的 Nginx 中有一个资源,其配置如下:

location ~ foo\.js$ {
add_header Cache-Control public;
expires 1d;
}

如果我用 Firebug 打开它并查看标题,它会显示以下内容:

Cache-Control   max-age=86400, public

该网站使用 HTTPS,所以我想确保我的设置正确,因为显然浏览器不会缓存它,除非它是 max-age>0 AND publicSee this

但是当我使用 curl -Ik https://... 时,我的 Nginx 会发生以下情况:

...
Expires: Sat, 22 Jan 2011 18:23:36 GMT
Cache-Control: max-age=86400
Cache-Control: public
...

它重复Cache-Control header !显然 Firebug 并不介意。但这是对的吗?

是否有更好的方法可以在两行中设置ExpiresCache-Control(使用public)?

最佳答案

是的,它是有效的,并且等同于使用多个 Cache-Control header 。

来自HTTP 1.1 spec :

Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma.

很容易验证此规定是否适用于 Cache-Control header ,因为 how it's defined :

Cache-Control = "Cache-Control" ":" 1#cache-directive

要了解如何解释上面的行,请参阅规范的 notational conventions1# 表示“以逗号分隔的一个或多个列表”。

关于nginx - 缓存控制 header 重复;有效与否? (Nginx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4762377/

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