httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1053523 - /httpd/httpd/trunk/docs/manual/mod/mod_headers.xml
Date Wed, 29 Dec 2010 03:32:24 GMT
Author: covener
Date: Wed Dec 29 03:32:23 2010
New Revision: 1053523

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/trunk/docs/manual/mod/mod_headers.xml
--- httpd/httpd/trunk/docs/manual/mod/mod_headers.xml (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_headers.xml Wed Dec 29 03:32:23 2010
@@ -307,18 +307,32 @@ headers</description>
     and output filters are run, allowing outgoing headers to be
-    <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>
-    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
+    <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).

View raw message