[prev in list] [next in list] [prev in thread] [next in thread] 

List:       varnish-bugs
Subject:    [Varnish] #686: VCL doesn't account for duplicate headers with
From:       varnish-bugs () varnish-cache ! org (Varnish)
Date:       2010-04-26 8:50:16
Message-ID: 042.f8a05be67072e6502bf73a7c4efd9ac6 () varnish-cache ! org
[Download RAW message or body]

#686: VCL doesn't account for duplicate headers with different content
----------------------+-----------------------------------------------------
 Reporter:  felix     |       Owner:  phk              
     Type:  defect    |      Status:  new              
 Priority:  normal    |   Milestone:  After Varnish 2.1
Component:  varnishd  |     Version:  trunk            
 Severity:  normal    |    Keywords:  vcl headers      
----------------------+-----------------------------------------------------
 Using Chromium 5.0.342.9 on Linux with a forced refresh (Ctrl+F5) I get
 the following in Varnish 2.1.0 on Debian:

 {{{
 13 RxHeader     c User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US)
 AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
 13 RxHeader     c Cache-Control: max-age=0
 13 RxHeader     c Pragma: no-cache
 13 RxHeader     c Cache-Control: no-cache
 }}}

 whereas in Firefox I get:

 {{{
 Firefox (3.6.3):

 13 RxHeader     c User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
 rv:1.9.2.3) Gecko/20100402 Namoroka/3.6.3
 13 RxHeader     c Pragma: no-cache
 13 RxHeader     c Cache-Control: no-cache
 }}}

 It seems that rfc2616 section 4.2 allows multiple duplicate headers so
 Chrome's behaviour is correct (but not traditional). Varnish seems to be
 only using the ''first'' one found.

 In the example of Chromium above, a VCL statement of 'req.http.Cache-
 Control' would be filled with 'max-age=0' whereas with Firefox it would be
 'no-cache'. This makes tests for a forced refresh a little difficult.

-- 
Ticket URL: <http://varnish-cache.org/ticket/686>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic