-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Milestone
Description
Phase 1
- Add an HTTP/2-capable handler to the test suite #3038
- Migrate HTTPDummyServerTestCase to Hypercorn #3196
- Migrate run_server_in_thread and run_server_and_proxy_in_thread to Hypercorn #3197
- Create a mechanism to test different HTTP protocols (HTTP/1.1 and HTTP/2) with the same test case #3194
- Create a new submodule (
urllib3.http2
) which will house all the logic for implementing HTTP/2 which is only available if theh2
module is installed. - Create additional types/parameters/properties to the existing
BaseHTTPConnection
andBaseHTTPResponse
, etc that will be needed for HTTP/2 support (http_version
,alpn_protocols
) - Decide architecture for HTTP/2 multiplexing (HTTPSConnection or HTTPSConnectionPool source of multiplexing?)
Phase 2
- Migrate socket-level tests to support HTTP/2
- Create a new HTTPS connection class which supports HTTP/2.
- Rudimentary HTTP/2 connection and response #3284
- Keep the connection open and reuse it, update the window while reading response.
- Add support for streaming HTTP/2 responses #3300
- Add support for more than one stream per socket connection. Buffering read data for other connections.
- Ensure HTTP/2 isn't offered for tunnel CONNECT requests #3298
- Add HTTP/2 support for forwarding proxies #3299
- Ensure this connection class can pass all existing test suites for HTTP connections
- Map HTTP/2 connection and stream error codes to existing urllib3 exceptions
- Implement multiplexing architecture decided in phase 1
- Experiment with backgroundable stream management for window sizing, ping requests, etc.
Phase 3
- Compatibility testing with services
- Performance testing
- Closed beta with biggest users and projects
- Create opt-in mechanism for open beta (
alpn_protocols
?) - Final release with opt-in mechanism enabled by default.
pquentin, dmdhrumilmistry, jnsga, detrin, smowtenshi and 3 more
Metadata
Metadata
Assignees
Labels
No labels