Subject: [quicwg/base-drafts] Error code for indicating that a HTTP response is aborted (#2416)

From: Kazuho Oku <[email-masked]>
Date: Mon, 04 Feb 2019 18:48:17 -0800

When a reverse proxy forwards a HTTP response to the client, sometimes it sees the upstream server terminate the response early. For example, a HTTP/1.1 connection being closed prior to transmitting number of bytes specified by the `content-length` field. Or a chunked response being closed abruptly.

The only way of delegating such a condition to the client in HTTP/2 was to send a RST_STREAM frame with `PROTOCOL_ERROR`. However, use of the error code is awkward in this case, considering the fact that the error did not happen within the communication between the endpoints using the particular HTTP/2 connection.

I think it makes sense to have an error code that better designates the case.

One way to address the issue in H3 would be to change `HTTP_REQUEST_CANCELLED` to `HTTP_MESSAGE_CANCELLED`, and let the server use the error code (as an argument of the RESET_STREAM frame) to indicate that the response has been "cancelled".

Originally proposed in 
https://github.com/quicwg/base-drafts/issues/2410#issuecomment-460330192.

-- 
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/issues/2416

---

From: MikkelFJ <[email-masked]>
Date: Mon, 04 Feb 2019 22:42:49 -0800

What if you do not want to admit to being a proxy? (who does?)

-- 
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/issues/2416#issuecomment-460530586

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 04 Feb 2019 23:09:38 -0800

HTTP_MESSAGE_CANCELLED would simply mean that the transfer of the response is cancelled, regardless of the server being an origin or a reverse proxy.

-- 
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/issues/2416#issuecomment-460535292

---

From: Martin Thomson <[email-masked]>
Date: Tue, 05 Feb 2019 03:21:35 -0800

I can get behind this.  As long as we're not looking for a byte-by-byte reproduction of the bytes the intermediary received (as was once requested and rejected, I think at the Seattle interim), then it makes sense to signal that the message was killed.

-- 
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/issues/2416#issuecomment-460602200

---

From: Mike Bishop <[email-masked]>
Date: Tue, 05 Feb 2019 13:44:23 -0800

This is basically an expansion of the CANCELLED/REJECTED codes to allow a server to do either.  WFM.

-- 
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/issues/2416#issuecomment-460815763

---

From: Kazuho Oku <[email-masked]>
Date: Wed, 06 Feb 2019 01:19:32 +0000 (UTC)

@MikeBishop Yes. And thank you for the PR.

-- 
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/issues/2416#issuecomment-460868562

---

From: Mike Bishop <[email-masked]>
Date: Sat, 09 Feb 2019 00:01:06 +0000 (UTC)

Closed #2416 via #2426.

-- 
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/issues/2416#event-2128425967