Scenario: I am running a rest server(nghttp2) with two APIs with 4 threads.
- /something : takes some time to process
- /anything : takes no time to process
Now, in the client side I am creating one session(which is essentially one TCP connection) and making two async requests, first to /something and next to /anything consecutively. The behavior I notice is that server doesn't process the second request until the the first one is finished. In the packet capture I can see nice implementation of HTTP2 multiplexing. But isn't this head of line blocking? Or is it that my expectation that the requests should be processed parallely rather in a interleaving fashion even if they are from the same TCP connection is wrong?
Note: If I create two different session or TCP connection for each request then they are processed parallely.