Skip to content

Early Hint in HTTP3 fails - Header without colon #3

Description

@superstes

Greetings!

When this version of curl receives an early-hint header in HTTP3 - it fails with Header without colon

docker run --network=host -it --rm alpine/curl-http3 curl -v --http3 -o/dev/null -A "Early-Hint TEST" https://www.3djake.com
* Request completely sent off
< HTTP/3 103 
< link: <https://3d.nice-cdn.com/library/early-connect.js>; rel=preconnect
* Header without colon
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host www.3djake.com left intact

# HTTP2 works
docker run --network=host -it --rm alpine/curl-http3 curl -v --http2 -o/dev/null -A "Early-Hint TEST" https://www.3djake.com
* Request completely sent off
{ [5 bytes data]
< HTTP/2 103 
< link: <https://3d.nice-cdn.com/library/early-connect.js>; rel=preconnect
< 
< HTTP/2 103 
< link: <https://3d.nice-cdn.com/library/early-connect.js>; crossorigin; rel=preconnect
< 
} [5 bytes data]
< HTTP/2 200 

For comparison - it works just fine using this curl-binary: https://github.com/stunnel/static-curl/releases/tag/8.17.0

./curl -v --http3 -o/dev/null -A "Early-Hint TEST" https://www.3djake.com
* Request completely sent off
< HTTP/3 103 
< link: <https://3d.nice-cdn.com/library/early-connect.js>; rel=preconnect
< 
< HTTP/3 103 
< link: <https://3d.nice-cdn.com/library/early-connect.js>; crossorigin; rel=preconnect
< 
< HTTP/3 200

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions