summaryrefslogtreecommitdiffstats
path: root/server/util_expr_eval.c
diff options
context:
space:
mode:
authorLuca Toscano <elukey@apache.org>2017-09-18 19:08:54 +0200
committerLuca Toscano <elukey@apache.org>2017-09-18 19:08:54 +0200
commitbc0f112313efded6fe63b39442a8fbc4470678c5 (patch)
tree9db072b280961153de13f63da97e6a6c442b0c7b /server/util_expr_eval.c
parentformat typo (diff)
downloadapache2-bc0f112313efded6fe63b39442a8fbc4470678c5.tar.xz
apache2-bc0f112313efded6fe63b39442a8fbc4470678c5.zip
mod_rewrite/core: avoid the 'Vary: Host' header
In PR 58231 is was brought up that httpd adds the Vary: Host header whenever a condition is set to true in mod_rewrite or in an <If> block. The https://tools.ietf.org/html/rfc7231#section-7.1.4 section seems to disallow this use case: "The "Vary" header field in a response describes " "what parts of a request message, " "aside from the method, Host header field, [...]" I had a chat with the folks in #traffic-server and they don't see much point in having a Vary: Host header, plus it was reported that Varnish doesn't like it very much (namely it does not cache the response when it sees the header, links of the report in the PR). I don't see much value in this behavior of httpd so I am inclined to remove this response header value, but I'd be glad to get a more experienced opinion. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1808746 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--server/util_expr_eval.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/server/util_expr_eval.c b/server/util_expr_eval.c
index 9f3640481d..bf579d70cd 100644
--- a/server/util_expr_eval.c
+++ b/server/util_expr_eval.c
@@ -1606,7 +1606,12 @@ static const char *req_header_var_fn(ap_expr_eval_ctx_t *ctx, const void *data)
return "";
name = req_header_header_names[index];
- add_vary(ctx, name);
+ /* Skip the 'Vary: Host' header combination
+ * as indicated in rfc7231 section-7.1.4
+ */
+ if (strcmp(name, "Host")){
+ add_vary(ctx, name);
+ }
return apr_table_get(ctx->r->headers_in, name);
}