<div dir="ltr"><p class="MsoNormal">Hi all,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Using nginx-quic (1.21.4), cookies are parsed individually by http3 code :<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse literal done "number1=this+is+the+first+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field lri done static[5] "number1=this+is+the+first+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 static[5] lookup "cookie":""</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field representation done</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 header: "cookie: number1=this+is+the+first+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field representation</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field lri</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse prefix int 5</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse prefix int 24</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse literal huff:1, len:24</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse literal done "number2=this+is+the+second+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field lri done static[5] "number2=this+is+the+second+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 static[5] lookup "cookie":""</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field representation done</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 header: "cookie: number2=this+is+the+second+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field representation</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field lri</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse prefix int 5</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse prefix int 23</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse literal huff:1, len:23</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse literal done "number3=this+is+the+third+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field lri done static[5] "number3=this+is+the+third+one"</i><u></u><u></u></p></div></div><div><div><p class="MsoNormal">2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 static[5] lookup "cookie":""<u></u><u></u></p></div><div><p class="MsoNormal">2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse field representation done<u></u><u></u></p></div><div><p class="MsoNormal">2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 parse headers done<u></u><u></u></p></div><div><p class="MsoNormal">2021/12/23 14:29:37 [debug] 32322#0: *3576 http3 header: "cookie: number3=this+is+the+third+one »<u></u><u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">But then the fastcgi param HTTP_COOKIE is passed for each cookie, resulting in overwriting it and keeping only the last one :<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 fastcgi param: "HTTP_COOKIE: number1=this+is+the+first+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 fastcgi param: "HTTP_COOKIE: number2=this+is+the+second+one"</i><u></u><u></u></p></div><div><p class="MsoNormal"><i>2021/12/23 14:29:37 [debug] 32322#0: *3576 fastcgi param: "HTTP_COOKIE: number3=this+is+the+third+one »</i><u></u><u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The HTTP_COOKIE param should be the whole cookie header.<u></u><u></u></p></div><div><p class="MsoNormal">Http2 code handles cookie header in a dedicated function « ngx_http_v2_construct_cookie_header » and then processes other headers.<u></u><u></u></p></div><div><p class="MsoNormal">There doesn’t seem to be the case of http3 code which process cookie the same way of others headers.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Regards,<u></u><u></u></p></div><div><p class="MsoNormal">Guillaume</p></div></div>