Subject: [quicwg/base-drafts] Servers can still CANCEL, too. (#2426)

From: Mike Bishop <[email-masked]>
Date: Tue, 05 Feb 2019 16:37:15 -0800

Fixes #2416.

I *think* this is editorial, as servers were not previously prohibited from using this error code.  This merely suggests when they might do so.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/2426

-- Commit Summary --

  * Servers can still CANCEL, too.

-- File Changes --

    M draft-ietf-quic-http.md (16)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2426.patch
https://github.com/quicwg/base-drafts/pull/2426.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2426

---

From: Martin Thomson <[email-masked]>
Date: Tue, 05 Feb 2019 16:55:01 -0800

martinthomson commented on this pull request.

> @@ -1382,7 +1386,7 @@ HTTP_PUSH_ALREADY_IN_CACHE (0x04):
 : The server has attempted to push content which the client has cached.
 
 HTTP_REQUEST_CANCELLED (0x05):
-: The client no longer needs the requested data.
+: The sender is no longer processing the request or response.

Not sure if you want to use "processing" here.  It might be read as implying something more (REQUEST_REJECTED).  Maybe:

```suggestion
: The request or its response is cancelled.
```

> @@ -1004,11 +1004,15 @@ some higher layer of software that might have taken some action as a result. The
 client can treat requests rejected by the server as though they had never been
 sent at all, thereby allowing them to be retried later on a new connection.
 Servers MUST NOT use the HTTP_REQUEST_REJECTED error code for requests which
-were partially or fully processed.  When a client sends a STOP_SENDING with
-HTTP_REQUEST_CANCELLED, a server MAY indicate the error code
-HTTP_REQUEST_REJECTED in the corresponding RESET_STREAM if no processing was
-performed.  Clients MUST NOT reset streams with the HTTP_REQUEST_REJECTED error
-code except in response to a QUIC STOP_SENDING frame.
+were partially or fully processed.  When a server abandons a response after
+partial processing, it SHOULD abort its response stream with the error code
+HTTP_REQUEST_CANCELLED.
+
+When a client sends a STOP_SENDING with HTTP_REQUEST_CANCELLED, a server MAY
+indicate the error code HTTP_REQUEST_REJECTED in the corresponding RESET_STREAM

```suggestion
send the error code HTTP_REQUEST_REJECTED in the corresponding RESET_STREAM
```

> @@ -1004,11 +1004,15 @@ some higher layer of software that might have taken some action as a result. The
 client can treat requests rejected by the server as though they had never been
 sent at all, thereby allowing them to be retried later on a new connection.
 Servers MUST NOT use the HTTP_REQUEST_REJECTED error code for requests which
-were partially or fully processed.  When a client sends a STOP_SENDING with
-HTTP_REQUEST_CANCELLED, a server MAY indicate the error code
-HTTP_REQUEST_REJECTED in the corresponding RESET_STREAM if no processing was
-performed.  Clients MUST NOT reset streams with the HTTP_REQUEST_REJECTED error
-code except in response to a QUIC STOP_SENDING frame.
+were partially or fully processed.  When a server abandons a response after
+partial processing, it SHOULD abort its response stream with the error code
+HTTP_REQUEST_CANCELLED.
+
+When a client sends a STOP_SENDING with HTTP_REQUEST_CANCELLED, a server MAY
+indicate the error code HTTP_REQUEST_REJECTED in the corresponding RESET_STREAM
+if no processing was performed.  Clients MUST NOT reset streams with the
+HTTP_REQUEST_REJECTED error code except in response to a QUIC STOP_SENDING
+frame.

```suggestion
frame that contains the same code.
```

The implication here is that a server won't use STOP_SENDING with REQUEST_REJECTED unless they have not processed anything.  That's not necessary obvious to me now, having had some time away from this subject.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2426#pullrequestreview-200375441

---

From: Kazuho Oku <[email-masked]>
Date: Tue, 05 Feb 2019 17:18:47 -0800

kazuho approved this pull request.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2426#pullrequestreview-200380822

---

From: Mike Bishop <[email-masked]>
Date: Thu, 07 Feb 2019 17:30:24 +0000 (UTC)

@MikeBishop pushed 1 commit.

950d56398e82ca71dc026db3618693abb1935d05  Apply suggestions from code review

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2426/files/3673b73f6bebf8cb029f8184b644c07ae3e6e083..950d56398e82ca71dc026db3618693abb1935d05

---

From: Mike Bishop <[email-masked]>
Date: Fri, 08 Feb 2019 16:01:07 -0800

Merged #2426 into master.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2426#event-2128425962