mirror of
https://github.com/curl/curl.git
synced 2026-05-18 20:06:20 +03:00
HTTP/2: strip TE request header
The TE request header field is invalid in HTTP/2. Since clients may not know in advance if a connection negotiates HTTP/2, automatically strip such a header when h2 is in play. Add test_01_10 to verify. Reported-by: Jiri Stary Fixes #15941 Closes #15943
This commit is contained in:
parent
515a21f350
commit
4e15605896
2 changed files with 12 additions and 0 deletions
|
|
@ -4121,7 +4121,9 @@ struct name_const {
|
|||
size_t namelen;
|
||||
};
|
||||
|
||||
/* keep them sorted by length! */
|
||||
static struct name_const H2_NON_FIELD[] = {
|
||||
{ STRCONST("TE") },
|
||||
{ STRCONST("Host") },
|
||||
{ STRCONST("Upgrade") },
|
||||
{ STRCONST("Connection") },
|
||||
|
|
|
|||
|
|
@ -139,3 +139,13 @@ class TestBasic:
|
|||
assert r.response['status'] == 200, f'{r.responsw}'
|
||||
assert r.response['protocol'] == 'HTTP/2', f'{r.response}'
|
||||
assert r.json['server'] == env.domain1
|
||||
|
||||
# http: strip TE header in HTTP/2 requests
|
||||
def test_01_10_te_strip(self, env: Env, httpd):
|
||||
curl = CurlClient(env=env)
|
||||
url = f'https://{env.authority_for(env.domain1, "h2")}/data.json'
|
||||
r = curl.http_get(url=url, extra_args=['--http2', '-H', 'TE: gzip'])
|
||||
r.check_exit_code(0)
|
||||
assert len(r.responses) == 1, f'{r.responses}'
|
||||
assert r.responses[0]['status'] == 200, f'{r.responses[1]}'
|
||||
assert r.responses[0]['protocol'] == 'HTTP/2', f'{r.responses[1]}'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue