Apache:“标头总是设置”和“标头设置”之间的区别?

问题描述 投票:0回答:1

问题

    apache中的
  1. Header always set
    Header set
    之间有什么区别?
    
    也就是,
  2. always
  3. 关键字在设置标头的情况下会发生什么?
    我总是使用
  4. always
  5. 设置标题
    
    有任何理由不这样做吗?
  6. background
  7. 我看过...
Header always set X-Frame-Options DENY

...以及...

Header always set Access-Control-Allow-Headers "*"
...我有时会听到

always

关键字的存在确保正确设置标头,或者最好将
always
关键字包括在内。但是,我从来没有找到

为什么是这样的清晰,明确的答案。

我已经检查了
Apache文档的
mod_headers

当您的操作是现有标头的函数时,您可能需要指定一个始终的条件,具体取决于设置原始标头的内部表。与始终使用的表相对应的表用于本地生成的错误响应以及成功的回应。还要注意,在某些情况下,在两种情况下重复此指令是有意义的

您将标头添加到本地生成的非成功(非2XX)响应(例如重定向)中,在这种情况下,只有与表相对应的表始终用于最终响应中。 您正在修改或删除由CGI脚本生成的标头,在这种情况下,CGI脚本在表中与始终相对应,而不是在默认表中。 您正在修改或删除服务器某些部分生成的标头,但是默认情况下未找到该标头。

据我所知,这意味着
always确保即使在非200页上设置标头。但是,我的HTTP标头设置为
Header set always
似乎总是在我的404页等上适用。我在这里误会了什么吗?

fwiw,我发现了诸如Apache的标题配置中的“始终”和“ onsuccess”之类的帖子是什么区别,但是那里唯一的答案并没有为我真正清楚地解释。 非常感谢,
Caleb

  • 标头总是设置和Apache中的标头之间的区别?
  • 手册中的引用所述,如果不始终“始终”的添加,您的添加只会得到成功的回应。
  • 但这还包括“成功”通过mod_proxy和其他类似的操作者的“成功”转发错误,这些操作人员大致像代理一样。 是什么产生了您发现与手册不同意的404秒?本地文件上的404肯定会如引号所述所描述的。
也就是,关于标题设置的情况的始终关键字会发生什么?

APACHE的API保留了与每个请求,标题和ERR_HEADERS关联的两个列表。  如果服务器遇到错误处理后者的请求,则不会使用前者。

  
我总是总是使用始终设置标头?

它取决于它们的意义。假设您正在设置与您期望为某些资源提供服务的高速缓存标题。 现在,假设您实际上是在提供400或502的服务。您可能不希望被缓存!

有任何理由不这样做吗?


在上面看到

- / -
apache .htaccess http-headers
1个回答
53
投票
在您没有引用的手册中,也有一些解释错误代理或CGI的引用,而不是为Apache生成错误响应的一个错误代码:

可选条件参数确定了哪个内部表 响应标题该指令将对。尽管有 名称,ONSUCCESS的默认值不会将操作限制为 用2xx状态代码响应。
例如,在这种情况下设置的障碍者仍然使用 请求是由CGI成功代理或生成的,即使他们 已经生成了失败的状态代码。

设置的lways似乎也与.htaccess文件中的设置指令进行不同的交互。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.