<div dir="ltr"><div><div><div><div>Hi,<br><br></div>Thanks for the response. <br><br>> ... [error] ... upstream sent no valid HTTP/1.0 header while reading response header from upstream ...<br><br></div>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?<br><br></div>Thanks,<br></div>Shanthu<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 9, 2017 at 9:07 PM, Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<span class=""><br>
On Wed, Aug 09, 2017 at 08:46:41PM +0530, Sharan J wrote:<br>
<br>
> Hello,<br>
><br>
> I am using Nginx as a reverse proxy and have enabled HTTP/2. For a<br>
> particular request, my back-end server sends a custom 4 digit status code<br>
> (say 9999).<br>
><br>
> When connecting via HTTP/1.1, the exact status code is returned to the<br>
> client but, when connection via HTTP/2, the response headers along with the<br>
> status(9999) sent by my back-end server is sent in the body and the header<br>
> has the status code 000.<br>
><br>
> The same works fine if the custom status code is 3-digit (say 999). I know<br>
> the standard is to use 3 digit status code but, why does Nginx sends the<br>
> back-end server's response headers in the body? Please help me understand<br>
> what exactly is happening.<br>
<br>
</span>When you return a 4-digit status code from your backend, nginx<br>
will fail to parse the HTTP response of the backend, and will<br>
assume that backend is using HTTP/0.9.  Something like this will<br>
be logged to the error log:<br>
<br>
... [error] ... upstream sent no valid HTTP/1.0 header while reading response header from upstream ...<br>
<br>
Since there are no headers in HTTP/0.9, everything returned by<br>
the backend will be considered to be a response body.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" rel="noreferrer" target="_blank">http://nginx.org/</a><br>
______________________________<wbr>_________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx</a><br>
</font></span></blockquote></div><br></div>