Subject: [quicwg/base-drafts] Error code to be sent when the size of request headers exceed server's limit (#2775)

From: Kazuho Oku <[email-masked]>
Date: Thu, 06 Jun 2019 19:21:50 -0700

At the moment, the HTTP spec says that "an HTTP/3 implementation MAY impose a limit on the maximum size of the header it will accept on an individual HTTP message; encountering a larger message header SHOULD be treated as a stream error of type `HTTP_EXCESSIVE_LOAD`."

Is this the intended behavior?

IIUC, HTTP_EXCESSIVE_LOAD indicates a temporary issue inside the server; a client is allowed to retransmit the request hoping that it would succeed the next time. In contrary to that, I view the size of the request exceeding the maximum imposed by the server to be a permanent error, and therefore that a different error code should be used. Or even better a HTTP status code, because what we want here is not a hop-by-hop signal; the other benefit of suggesting the use of a HTTP status code is that it removes the risk of the connection getting shut down (an action that affects other requests).

-- 
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/2775

---

From: MikkelFJ <[email-masked]>
Date: Thu, 06 Jun 2019 22:28:12 -0700

Makes sense - it is probably one of the few places where you actually benefit from an error other than HTTP_GENERAL_PROTOCOL_ERROR because you a making a qualified guess when sending blind.

-- 
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/2775#issuecomment-499761587

---

From: ianswett <[email-masked]>
Date: Fri, 07 Jun 2019 04:44:23 -0700

I agree, HTTP_EXCESSIVE_LOAD seems like the wrong error code here.

HTTP_GENERAL_PROTOCOL_ERROR or HTTP_REQUEST_REJECTED would be better.

Did you have an HTTP status code in mind for this case?  I believe HTTP status codes should be consistent across HTTP versions, so If neither HTTP or HTTP/2 are sending back a status code for this case, an HTTP/3 error code seems more appropriate.

-- 
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/2775#issuecomment-499854386

---

From: Kazuho Oku <[email-masked]>
Date: Fri, 07 Jun 2019 05:26:53 -0700

@ianswett Glad you asked.

I went back to check RFC 7540 and now realize that the only suggested behavior is:
> A server that receives a larger header block than it is willing to handle can send an HTTP 431 (Request Header Fields Too Large) status code [RFC6585].
> https://httpwg.org/specs/rfc7540.html#rfc.section.10.5.1

I think we should provide the same guidance in HTTP/3.

-- 
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/2775#issuecomment-499865375

---

From: ianswett <[email-masked]>
Date: Fri, 07 Jun 2019 06:18:55 -0700

Thanks for checking.  SGTM

-- 
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/2775#issuecomment-499881425

---

From: Mike Bishop <[email-masked]>
Date: Fri, 07 Jun 2019 09:29:18 -0700

I'm fine importing that guidance.

-- 
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/2775#issuecomment-499951652

---

From: Kazuho Oku <[email-masked]>
Date: Fri, 07 Jun 2019 12:22:57 -0700

@MikeBishop Changes to #2774 look good to me. Thank you! :+1:

-- 
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/2775#issuecomment-500008768

---

From: Mike Bishop <[email-masked]>
Date: Tue, 18 Jun 2019 14:27:01 -0700

Closed #2775 via bba4f7b2b423d2cf5b1d95c9d0240ca8055ab95c.

-- 
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/2775#event-2422298062