Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server push tidy up #1503

Merged
merged 5 commits into from Jun 29, 2018
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
30 changes: 15 additions & 15 deletions draft-ietf-quic-http.md
Expand Up @@ -527,9 +527,9 @@ but uses different mechanisms.

The PUSH_PROMISE frame ({{frame-push-promise}}) is sent on the client-initiated
bidirectional stream that carried the request that generated the push. This
allows the server push to be associated with a request. Ordering of a PUSH_PROMISE
in relation to certain parts of the response is important (see Section 8.2.1 of
{{!RFC7540}}).
allows the server push to be associated with a request. Ordering of a
PUSH_PROMISE in relation to certain parts of the response is important (see
Section 8.2.1 of {{!RFC7540}}).

The PUSH_PROMISE frame does not reference a stream; it contains a Push ID that
uniquely identifies a server push. This allows a server to fulfill promises in
Expand All @@ -539,12 +539,12 @@ a promise, the server push response is conveyed on a push stream.

A push stream is indicated by a stream type of `0x50` (ASCII 'P'), followed by
the Push ID of the promise that it fulfills, encoded as a variable-length
integer. The remaining data on this stream consists of HTTP/QUIC frames, as defined
in {{frames}}, and carries the response side of an HTTP message exchange as
described in {{request-response}}. The request headers of the exchange are
carried by a PUSH_PROMISE frame (see {{frame-push-promise}}) on the request
stream which generated the push. Promised requests MUST conform to the
requirements in Section 8.2 of {{!RFC7540}}.
integer. The remaining data on this stream consists of HTTP/QUIC frames, as
defined in {{frames}}, and carries the response side of an HTTP message
exchange asdescribed in {{request-response}}. The request headers of the
exchange are carried by a PUSH_PROMISE frame (see {{frame-push-promise}})
on the request stream which generated the push. Promised requests MUST
conform to the requirements in Section 8.2 of {{!RFC7540}}.

Only servers can push; if a server receives a client-initiated push stream, this
MUST be treated as a stream error of type HTTP_WRONG_STREAM_DIRECTION.
Expand All @@ -561,14 +561,14 @@ MUST be treated as a stream error of type HTTP_WRONG_STREAM_DIRECTION.
Server push is only enabled on a connection when a client sends a MAX_PUSH_ID
frame (see {{frame-max-push-id}}). A server cannot use server push
until it receives a MAX_PUSH_ID frame. A client sends additional MAX_PUSH_ID
frames to control the number of pushes that a server can promise. A server SHOULD
use Push IDs sequentially, starting at 0. A client MUST treat receipt of a push
stream with a Push ID that is greater than the maximum Push ID as a connection
error of type HTTP_PUSH_LIMIT_EXCEEDED.
frames to control the number of pushes that a server can promise. A server
SHOULD use Push IDs sequentially, starting at 0. A client MUST treat receipt
of a pushstream with a Push ID that is greater than the maximum Push ID as a
connection error of type HTTP_PUSH_LIMIT_EXCEEDED.

Each Push ID MUST only be used once in a push stream header. If a push stream
header includes a Push ID that was used in another push stream header, the client
MUST treat this as a connection error of type HTTP_DUPLICATE_PUSH.
header includes a Push ID that was used in another push stream header, the
client MUST treat this as a connection error of type HTTP_DUPLICATE_PUSH.

If a promised server push is not needed by the client, the client SHOULD send a
CANCEL_PUSH frame. If the push stream is already open, a QUIC STOP_SENDING frame
Expand Down