[Varnish] #686: VCL doesn't account for duplicate headers with different content
Varnish
varnish-bugs at varnish-cache.org
Tue Nov 9 13:16:32 CET 2010
#686: VCL doesn't account for duplicate headers with different content
-------------------------+--------------------------------------------------
Reporter: felix | Owner: phk
Type: defect | Status: closed
Priority: normal | Milestone: After Varnish 2.1
Component: varnishd | Version: trunk
Severity: normal | Resolution: fixed
Keywords: vcl headers |
-------------------------+--------------------------------------------------
Changes (by phk):
* status: new => closed
* resolution: => fixed
Comment:
(In [5531]) One of the silly overgeneralizations in RFC2616, is that
headers which
contain comma-separated lists, can be spread over multiple header
lines.
There is no way of knowing if this rule applies to any header not
in RFC2616, short of chasing down the relevant standards document,
if any, for the particular header.
Considering the fact that HTTP header lines have no natural
limitation on length AND that RFC2616 already specifies a mechanism
for header-continuation, this doesn't add any value, at all.
It is hardly a surprise that nobody used this either, so until now,
we have ignored this silly stuff and just used the first header we
found.
But now Chromium, of all things, seems to find it necessary to
spread its Cache-Control across two lines, and we get to deal
with this crap.
Add a function for stitching multiple header lines into one, and
call it on Cache-Control in requests to deal with Chromiums issues.
Since we have it, call it preemptively on Cache-Control and Vary
in backend responses, since the C-code examines these fields.
XXX: At some point, add VCL support for collecting specific headers
this way.
Fixes: #686
--
Ticket URL: </ticket/686#comment:1>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list