• “onsuccess(默认)”响应标头表 → 仅适用于 2xx 响应
• “始终” 响应头表 → 适用于所有响应,包括 2xx
后来又说:
always 不是 onsuccess 的超集
如果“always headers response table”包含2xx,它怎么不能是“onsuccess”的超集?
您错过了声明的重要部分
always 不是 onsuccess 的超集 相对于现有的 headers:
这有点令人困惑,但如果您阅读链接到它的文档,就会解释它。
onsuccess 和always 之间的这种差异是由于httpd 在内部存储HTTP 响应标头的方式而产生的,因为它不提供任何“标准化”的单个标头列表。
这是我尝试使文档中的示例更加清晰:
第 1 步 - 您的申请
response.status = 200
response.headers['X-Foo'] = 'bar'
return response
第2步:mod_proxy
mod_proxy sets headers in the always table and not in the default onSuccess table
apache 头表:
|永远|成功|
|--------------|-----------------|
|
x-Foo: bar
| |
第 3 步:mod_headers
Header onSuccess set X-Foo: baz
apache 头表:
永远 | 成功 |
---|---|
|
|
第4步:服务器响应
HTTP/1.1 200
Server: apache
x-Foo: bar
X-Foo: baz
这就是文档所说的原因
always 不是 onsuccess 的超集 相对于现有标头。
还有那个
在某些情况下,在这两个条件下重复此指令是有意义的
再次从示例中,您可以通过以下方式解决问题:
mod_headers
Header onSuccess unset X-Foo
Header always set X-Foo: baz