W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2022

Usage of HTTP/2 PROTOCOL_ERROR and INTERNAL_ERROR

From: Guoye Zhang <guoye_zhang@apple.com>
Date: Tue, 03 May 2022 02:26:19 -0700
Message-id: <C2794B39-B296-497E-A02F-FB5D56511C5F@apple.com>
To: ietf-http-wg <ietf-http-wg@w3.org>
Hi,

We maintain the HTTP client library on Apple’s platforms, and with more servers enabling HTTP/2, our error handling logic was recently brought to attention.

To my understanding, PROTOCOL_ERROR means that the other side didn’t implement the standard correctly, and INTERNAL_ERROR means something happened unexpectedly on our side (e.g. crashed). Both of the error codes should be fatal and only caused by bugs in software, so we do not attempt to retry or perform download resumption.

However, nginx is using these error codes for transfers that are too slow causing timeout, which can occur due to bad network connectivity. https://github.com/nginx/nginx/blob/master/src/http/v2/ngx_http_v2.c#L4639

My question is, should we treat PROTOCOL_ERROR and INTERNAL_ERROR as recoverable errors on the client side?

Guoye Zhang
Received on Tuesday, 3 May 2022 16:35:40 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 3 May 2022 16:35:41 UTC