1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
Flow
====
These are the expected event flows/sequences.
H11/H2
------
A typical HTTP/1 or HTTP/2 request with response with the connection
specified to close on response.
.. mermaid::
sequenceDiagram
TCPServer->>H11/H2: RawData
H11/H2->>HTTPStream: Request
H11/H2->>HTTPStream: Body
HTTPStream->>App: http.request[more_body=True]
H11/H2->>HTTPStream: EndBody
HTTPStream->>App: http.request[more_body=False]
App->>HTTPStream: http.response.start
App->>HTTPStream: http.response.body
HTTPStream->>H11/H2: Response
H11/H2->>TCPServer: RawData
HTTPStream->>H11/H2: Body
H11/H2->>TCPServer: RawData
HTTPStream->>H11/H2: EndBody
H11/H2->>TCPServer: RawData
H11/H2->>HTTPStream: StreamClosed
HTTPStream->>App: http.disconnect
H11/H2->>TCPServer: Closed
H11 early client cancel
-----------------------
The flow as expected if the connection is closed before the server has
the opportunity to respond.
.. mermaid::
sequenceDiagram
TCPServer->>H11/H2: RawData
H11/H2->>HTTPStream: Request
H11/H2->>HTTPStream: Body
HTTPStream->>App: http.request[more_body=True]
TCPServer->>H11/H2: Closed
H11/H2->>HTTPStream: StreamClosed
HTTPStream->>App: http.disconnect
|