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.

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.

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