h2 in 5.1.1 and jsessionid cookies ?

kokoniimasu kokoniimasu at gmail.com
Fri Mar 17 19:48:40 CET 2017


Hi,Christian.

Yes, my backend is Varnish.
Apache did not error by POST request in my test env too.
Probably, C-L is ignored in apache.(I'm not read apache source.)

rfc7230 is written

       If a message is received with both a Transfer-Encoding and a
       Content-Length header field, the Transfer-Encoding overrides the
       Content-Length.  Such a message might indicate an attempt to
       perform request smuggling (Section 9.5) or response splitting
       (Section 9.4) and ought to be handled as an error.  A sender MUST
       remove the received Content-Length field prior to forwarding such
       a message downstream.

   https://tools.ietf.org/html/rfc7230#section-3.3.3

2017-03-18 3:10 GMT+09:00 Christian Bjørnbak <cbj at touristonline.dk>:
> Hi kokoniimasu,
>
>     if(req.http.cookie){
>       std.collect(req.http.cookie);
>       set req.http.cookie = regsuball(req.http.cookie,", ","; ");
>     }
>
> did the trick for me..
>
> Thanks for your help.
>
> The other if only seems to be relevant and valid if the backend is a varnish
> too? My backend is Apache.
>
>
>
> Med venlig hilsen / Kind regards,
>
> Christian Bjørnbak
>
> Chefudvikler / Lead Developer
> TouristOnline A/S
> Islands Brygge 43
> 2300 København S
> Denmark
> TLF: +45 32888230
> Dir. TLF: +45 32888235
>
> 2017-03-17 18:26 GMT+01:00 kokoniimasu <kokoniimasu at gmail.com>:
>>
>> Hi,Christian.
>>
>> #sorry I forgot add ml-list...
>>
>> Are you manipulating cookies in Varnish?(set, get...)
>> Some browser send several cookie header by H/2.
>> Probably in order to make HPACK compression more effective.
>> you may want to use std.collect.
>> I added the this VCL in my environment.
>>
>>
>> sub vcl_recv{
>>   if(req.proto ~ "HTTP/2"){
>>     if(req.http.cookie){
>>       std.collect(req.http.cookie);
>>       set req.http.cookie = regsuball(req.http.cookie,", ","; ");
>>     }
>>     if(req.http.content-length){
>>       // temporary...
>>       // https://github.com/varnishcache/varnish-cache/issues/2247
>>       unset req.http.content-length;
>>     }
>>   }
>> }
>>
>> I hope to reference.
>>
>> --
>> Shohei Tanaka(@xcir)
>> http://blog.xcir.net/
>>
>> 2017-03-18 1:32 GMT+09:00 Christian Bjørnbak <cbj at touristonline.dk>:
>> > Hi,
>> >
>> > I setup h2 with Hitch 1.4.4 and Varnish 5.1.1 following the guide in the
>> > release announcement.
>> >
>> > It works for stateless pages but if I try to log into our extranet where
>> > we
>> > use an jsessionid cookie varnish seems to discard the cookie from the
>> > request.
>> >
>> > When I enter the login page I receive a jsessionid cookie in the
>> > browser.
>> >
>> > When I submit the login form I am redirected to the login page with a
>> > new
>> > jsessionid cookie.
>> >
>> > If I disable alpn in the Hitch config everything works at it use to but
>> > of
>> > course without h2...
>> >
>> >
>> > From what I can find on google h2 is suppose to support h1 style
>> > cookies:
>> > http://unrestful.io/2015/06/21/cookies.html
>> >
>> >
>> > Do I need to change something in the VCL to support (jsessionid) cookies
>> > with h2?
>> >
>> >
>> >
>> > Med venlig hilsen / Kind regards,
>> >
>> > Christian Bjørnbak
>> >
>> > Chefudvikler / Lead Developer
>> > TouristOnline A/S
>> > Islands Brygge 43
>> > 2300 København S
>> > Denmark
>> > TLF: +45 32888230
>> > Dir. TLF: +45 32888235
>> >
>> > _______________________________________________
>> > varnish-misc mailing list
>> > varnish-misc at varnish-cache.org
>> > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>
>



More information about the varnish-misc mailing list