[Varnish] #686: VCL doesn't account for duplicate headers with different content

Varnish varnish-bugs at varnish-cache.org
Tue Nov 30 08:36:10 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  |  

Comment(by tfheen):

 (In [5626]) Merge r5531: Merge multi-line Cache-Control and Vary header

 One of the silly overgeneralizations in RFC2616, is that headers which
 contain comma-separated lists, can be spread over multiple header

 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

 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:3>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list