qt5base-lts/tests/auto/network/access
Timur Pocheptsov 53357f0156 HTTP/2 - implement the proper 'h2c' (protocol upgrade)
Without TLS (and thus ALPN/NPN negotiation) HTTP/2 requires
a protocol upgrade procedure, as described in RFC 7540, 3.2.
We start as HTTP/1.1 (and thus we create QHttpProtocolHandler first),
augmenting the headers we send with 'Upgrade: h2c'. In case
we receive HTTP/1.1 response with status code 101 ('Switching
Protocols'), we continue as HTTP/2 session, creating QHttp2ProtocolHandler
and pretending the first request we sent was HTTP/2 request
on a real HTTP/2 stream. If the first response is something different
from 101, we continue as HTTP/1.1. This change also required
auto-test update: our toy-server now has to respond to
the initial HTTP/1.1 request on a platform without ALPN/NPN.
As a bonus a subtle flakyness in 'goaway' auto-test went
away (well, it was fixed).

[ChangeLog][QtNetwork][HTTP/2] In case of clear text HTTP/2 we
now initiate a required protocol upgrade procedure instead of
'H2Direct' connection.

Task-number: QTBUG-61397
Change-Id: I573fa304fdaf661490159037dc47775d97c8ea5b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-08-27 04:54:55 +00:00
..
hpack HPACK implementation 2016-06-15 11:26:45 +00:00
hsts Introduce QHstsStore - the permanent store for HSTS policies 2017-08-02 22:01:47 +00:00
http2 HTTP/2 - implement the proper 'h2c' (protocol upgrade) 2017-08-27 04:54:55 +00:00
qabstractnetworkcache qabstractnetworkcache - enable several tests 2016-01-26 13:12:03 +00:00
qftp Use QSharedPointer::create() more 2017-07-19 13:40:42 +00:00
qhttpnetworkconnection Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qhttpnetworkreply Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qnetworkaccessmanager Updated license headers 2016-01-21 18:55:18 +00:00
qnetworkcachemetadata Updated license headers 2016-01-21 18:55:18 +00:00
qnetworkcookie Add qtest_network.h 2016-09-29 21:46:19 +00:00
qnetworkcookiejar Fix failing network cookie jar tests 2017-08-07 19:19:13 +00:00
qnetworkdiskcache QTemporaryFile: Add support for Linux's O_TMPFILE 2017-08-23 04:02:19 +00:00
qnetworkreply Fix tests that assume system files are owned by root for qemu 2017-04-26 09:12:12 +00:00
qnetworkrequest Add qtest_network.h 2016-09-29 21:46:19 +00:00
spdy Updated license headers 2016-01-21 18:55:18 +00:00
access.pro Add HTTP strict tranport security support to QNAM 2017-01-20 08:41:50 +00:00