HTTP/2 custom status codes

Sharan J jsharan15 at gmail.com
Wed Aug 9 16:26:26 UTC 2017


Hi,

Thanks for the response.

> ... [error] ... upstream sent no valid HTTP/1.0 header while reading
response header from upstream ...

This is logged in the error log for both HTTP/1.1 and HTTP/2. May I know
why everything returned by the backend is considered as the response body
in HTTP/2 alone? and not in HTTP/1.1?

Thanks,
Shanthu

On Wed, Aug 9, 2017 at 9:07 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:

> Hello!
>
> On Wed, Aug 09, 2017 at 08:46:41PM +0530, Sharan J wrote:
>
> > Hello,
> >
> > I am using Nginx as a reverse proxy and have enabled HTTP/2. For a
> > particular request, my back-end server sends a custom 4 digit status code
> > (say 9999).
> >
> > When connecting via HTTP/1.1, the exact status code is returned to the
> > client but, when connection via HTTP/2, the response headers along with
> the
> > status(9999) sent by my back-end server is sent in the body and the
> header
> > has the status code 000.
> >
> > The same works fine if the custom status code is 3-digit (say 999). I
> know
> > the standard is to use 3 digit status code but, why does Nginx sends the
> > back-end server's response headers in the body? Please help me understand
> > what exactly is happening.
>
> When you return a 4-digit status code from your backend, nginx
> will fail to parse the HTTP response of the backend, and will
> assume that backend is using HTTP/0.9.  Something like this will
> be logged to the error log:
>
> ... [error] ... upstream sent no valid HTTP/1.0 header while reading
> response header from upstream ...
>
> Since there are no headers in HTTP/0.9, everything returned by
> the backend will be considered to be a response body.
>
> --
> Maxim Dounin
> http://nginx.org/
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20170809/ef6acad3/attachment.html>


More information about the nginx mailing list