4.6 Server Push State Diagram
The push state diagram reflects the server's states during the push distribution sequence specified in section 4.1.
Figure 6: Server push state diagram
All requests illustrated in the diagram are sent by the client to the server in the context of an HTTP request message using the POST method. All server responses are in the context of an HTTP response message.
If the Idle-Timeout timer expires, the server closes the TCP connection as specified in section 188.8.131.52.
If accepted, the server responds with a response of request succeeded, and waits to receive a PushStart request.
If the Inactivity Timeout timer expires, the server shall close the TCP connection as specified in section 184.108.40.206.
After receiving the PushStart request, the server must respond with an error or it must load the state that has a Push-ID variable with the same value as the value of the push-id (section 220.127.116.11.1). If there are no errors, the server begins to process the received packets.
If the PushStart request is done, or the TCP connection is closed, the server will go back to waiting for a PushStart request.
If while processing the packets the Idle-Timeout timer expires or the server receives an $E packet with the Reason field not equal to 0x00000001, then the server should close the session as specified in section 18.104.22.168. $E packet processing is specified in section 22.214.171.124.