Closed
Description
I did this
curl -v http://127.0.0.1 --http2-prior-knowledge --header ":scheme:aaa"
- Trying 127.0.0.1:80...
- Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
- Using HTTP2, server supports multi-use
- Connection state changed (HTTP/2 confirmed)
- Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
- Failed sending HTTP request
- Connection #0 to host 127.0.0.1 left intact
curl: (55) Failed sending HTTP request
I expected the following
I expected the :scheme header to be passed for the http2 request and get a server response.
curl/libcurl version
curl 7.77.0 (x86_64-apple-darwin21.0) libcurl/7.77.0 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.42.0
Release-Date: 2021-05-26
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSocket
operating system
Mac OS X 12.1 Monterey.
Activity
jay commentedon Feb 3, 2022
Can you give an example where it would be useful to set scheme?
bagder commentedon Feb 4, 2022
Ah yes! h2 (and h3) pseudo headers cannot be replaced, removed or added actually. I consider this a mistake we should fix.
http2: allow CURLOPT_HTTPHEADER change ":scheme"
mkauf commentedon Mar 1, 2022
The new log message contains a typo: "pseduo"
h2h3: fix typo
jay commentedon Mar 1, 2022
Thanks, landed in 592f114.