3.2.5.2.1 Sending a PushStart Response

The PushStart response MUST follow the rules as specified in section 2.2.2.2.

If the response is not intended to convey a particular error status code, the status code in the response SHOULD be 204 because the PushStart response does not have a message body. The status code MAY be 200.

The response SHOULD include a Set-Cookie header, and the value of the push-id cookie on that header MUST be equal to the value of the Push-ID variable in the abstract data model.

The response sent by the server MUST NOT specify any of the headers and tokens specified in section 2.2.1, which are defined only for use in requests.

After having sent the response, if the status code did not indicate an error, the TCP connection to the client SHOULD be left open because the client likely will send another PushStart request on the same connection.

Unless the session is being terminated, the server MUST stop the Idle-Timeout timer, MUST start the Inactivity-Timeout timer, and MUST wait for a PushSetup request or a PushStart request to be received.

How to process a PushSetup request is specified in section 3.2.5.1. If a PushStart request is being received, as soon as the request line and all of the HTTP headers in that request have been received, the server MUST process the rules as specified in section 3.2.5.2. The server MUST NOT wait for the entire message body of the PushStart request to be received before processing the request.