HTTP2 Multiplexing

Valentin V. Bartenev vbart at nginx.com
Wed May 4 10:19:50 UTC 2016


On Wednesday 04 May 2016 11:25:11 Muhui Jiang wrote:
> Hi
> 
> Different from HTTP1.1 pipeline, HTTP2 allows multiple request and response
> messages to be in flight at the same time. I was wondering what the
>  strategy  Nginx adopt to implement this main feature.

Nginx allows multiple request and responses in multiple connections using 
HTTP/1.x as well.  HTTP/2 changes nothing here (except it uses only one 
connection, but it's not important from the basic architecture point of
view). 


> 
> Is every single stream correspond to a thread. If not, how can Nginx
> provide multiple parallel requests handling. If you can locate the
> correspond code for me, that would be great
> 

No, nginx uses asynchronous non-blocking event-driven architecture
instead of mapping requests into separate threads.

It have used multiplexing of requests handling in single process many
years before HTTP/2 was invented.

A more detailed explanation can be found here:
https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/

  wbr, Valentin V. Bartenev



More information about the nginx mailing list