http2: PUSH_PROMISE client-side stream state
问题 The http2 spec says: A receiver MUST treat the receipt of a PUSH_PROMISE on a stream that is neither "open" nor "half-closed (local)" as a connection error (Section 5.4.1) of type PROTOCOL_ERROR. However, an endpoint that has sent RST_STREAM on the associated stream MUST handle PUSH_PROMISE frames that might have been created before the RST_STREAM frame is received and processed. The spec also has this lifecycle diagram. My understanding is that in order for a client to receive a PUSH_PROMISE