You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2010/12/29 04:33:38 UTC
svn commit: r1053524 -
/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_headers.xml
Author: covener
Date: Wed Dec 29 03:33:38 2010
New Revision: 1053524
URL: http://svn.apache.org/viewvc?rev=1053524&view=rev
Log:
Merge r1053523 from trunk:
PR50525: Header always ... doesn't really mean "always" in terms of what you
can edit/merge/append/set since it only looks at r->err_headers_out and
the initial value may have lived in r->headers_out.
Modified:
httpd/httpd/branches/2.2.x/docs/manual/mod/mod_headers.xml
Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_headers.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_headers.xml?rev=1053524&r1=1053523&r2=1053524&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_headers.xml (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_headers.xml Wed Dec 29 03:33:38 2010
@@ -298,18 +298,32 @@ headers</description>
and output filters are run, allowing outgoing headers to be
modified.</p>
- <p>By default, this directive only affects successful responses (responses
- in the <code>2<var>xx</var></code> range). The optional <var>condition</var>
- can be either <code>onsuccess</code> (default) or <code>always</code> (all
- status codes, including successful responses). A value of <code>always</code>
- may be needed to influence headers set by some internal modules even for
- successful responses, and is always needed to affect non-<code>2<var>xx</var></code>
- responses such as redirects or client errors.</p>
-
- <note><title>CGI</title>
- <p>To manipulate headers set by CGI scripts, it is necessary to specify
- <code>always</code> for the first parameter.</p>
- </note>
+ <p> The optional <var>condition</var> argument determines which internal
+ table of responses headers this directive will operate against. Other
+ components of the server may have stored their response headers in either
+ the table that corresponds to <code>onsuccess</code> or the table that
+ corresponds to <code>always</code>. "Always" in this context refers to
+ whether headers you add will be sent during both a successful and unsucessful
+ response, but if your action is a function of an existing header, you
+ will have to read on for further complications.</p>
+
+ <p> The default value of <code>onsuccess</code> may need to be changed to
+ <code>always</code> under the circumstances similar to those listed below
+ Note also that repeating this directive with both conditions makes sense in
+ some scenarios because <code>always</code> is not a superset of
+ <code>onsuccess</code> with respect to existing headers:</p>
+
+ <ul>
+ <li> You're adding a header to a non-success (non-2xx) response, such
+ as a redirect, in which case only the table corresponding to
+ <code>always</code> is used in the ultimate response.</li>
+ <li> You're modifying or removing a header generated by a CGI script,
+ in which case the CGI scripts are in the table corresponding to
+ <code>always</code> and not in the default table.</li>
+ <li> You're modifying or removing a header generated by some piece of
+ the server but that header is not being found by the default
+ <code>onsuccess</code> condition.</li>
+ </ul>
<p>The action it performs is determined by the first
argument (second argument if a <var>condition</var> is specified).