<div dir="ltr">Hi Valentin<div><br></div><div>Thanks for your email. </div><div><br></div><div><span style="font-size:14px">if it sees the end of buffer chain in nginx, it adds the </span><span style="font-size:14px">END_STREAM flag</span><br></div><div><span style="font-size:14px">========================</span></div><div><span style="font-size:14px">Here the buffer chain means the ssl buffer?</span></div><div><br></div><div>The thing I am curious is that why nginx need to carry a data frame whose payload length is zero. Nginx could add the END_STREAM flag in the previous DATA frame. </div><div>Since I am doing some research work using nginx. I hope that the nginx only return one DATA frame to me when I request an object. However, No matter how small the object size is, nginx will always add an extra DATA frame whose length is zero plus an END_STREAM flag. Do you have any suggestions or could you please propose a configuration that NGINX will only return one DATA frame for one stream. Many thanks</div><div><br></div><div>Regards</div><div>Muhui</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-09-02 4:32 GMT+08:00 Valentin V. Bartenev <span dir="ltr"><<a href="mailto:vbart@nginx.com" target="_blank">vbart@nginx.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On пятница, 1 сентября 2017 г. 19:59:04 MSK Muhui Jiang wrote:<br>
> Hi<br>
><br>
> I am using nginx 1.9.15. I noticed when I made a HTTP2 request to the<br>
> nginx. It will send the data frames that carry the object first. But end<br>
> with a data frame whose length is zero indicating the Data end flag.<br>
><br>
> I am curious why you guys design in this way. I think we don't need this<br>
> extra data frame. Maybe nginx has already fix this, If so, could you tell<br>
> me the exact version.. Many Thanks<br>
><br>
<br>
</span>Request processing in nginx is quite complex.  There may have many data<br>
sources, modules, filter modules, and so on.  The HTTP/2 module works quite<br>
straightforward, if it sees the end of buffer chain in nginx, it adds the<br>
END_STREAM flag.  Otherwise, it doesn't.<br>
<br>
So, whether you see END_STREAM in a separate DATA frame or not depends on<br>
many factors and your configuration.<br>
<br>
  wbr, Valentin V. Bartenev<br>
<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></blockquote></div><br></div>