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

Servers SHOULD NOT misuse the CANCELLED state #770

Merged
merged 2 commits into from Sep 21, 2017
Merged
Changes from all commits
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
9 changes: 7 additions & 2 deletions draft-ietf-quic-http.md
Expand Up @@ -767,14 +767,19 @@ indicated in the GOAWAY frame, those requests were not and will not be
processed. Endpoints SHOULD reset any streams above this ID with the error code
HTTP_REQUEST_CANCELLED. Servers MAY also reset streams below the indicated ID
with HTTP_REQUEST_CANCELLED if the associated requests were not processed.
Servers MUST NOT use the HTTP_REQUEST_CANCELLED status for requests which were
partially or fully processed.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clients can detect this by observing that it received part of a response. Do you want to recommend a reaction for clients?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following paragraph discusses what clients do with cancelled requests and this PR adds, "However, if a stream is cancelled after receiving a partial response, the response SHOULD NOT be used and the request cannot be safely retried."

Though rereading it, it might be clearer to place the addition before the existing last sentence.


The client can treat requests cancelled by the server as though they had never
been sent at all, thereby allowing them to be retried later on a new connection.
Automatically retrying other requests is not possible, unless this is otherwise
If a stream is cancelled after receiving a complete response, the client MAY
ignore the cancellation and use the response. However, if a stream is cancelled
after receiving a partial response, the response SHOULD NOT be used.
Automatically retrying such requests is not possible, unless this is otherwise
permitted (e.g. idempotent actions like GET, PUT, or DELETE). Requests on
stream IDs less than or equal to the stream ID in the GOAWAY frame might have
been processed; their status cannot be known until they are completed
successfully, reset, or the connection terminates.
successfully, reset individually, or the connection terminates.

Servers SHOULD send a GOAWAY frame when the closing of a connection is known
in advance, even if the advance notice is small, so that the remote peer can
Expand Down