Pipelining and multiplexing in HTTP connection.
So today we were troubleshooting an issue and found that our application was consuming new TCP connection which led to SSL handshake between client and server communication while there was already open TCP connection with server.
We are using HTTP 1.1 concurrent with pool numbers in which if a sequential call is not completed you cannot have another request until that call is completed default behavior of HTTP 1.1.
So, i put my hat of research and wanted that same TCP should be used for the new call instead creating new one so i Google it and found the concept of Pipelining in HTTP 1.1,
I thought yes i crack the thing and now we will implement it and will use same connection for all the streams but wait what HTTP 1.1 pipelining have same serious issue and one should use HTTP 2.0 instead but i then again hit by a surprise that HTTP 2.0 also have some issue and now there is a new version of HTTP 3.0 which overcome both issues of HTTP 1.1 and HTTP2.0 for now my plan to implement is halt as this change will be done on application end at client end and at proxy end too so we are back to square concurrent connection, Still we hope that one day we will update to HTTP 3.0 which will lead to high performance with low cost(resource usage.
Few of draw backs are mentioned below, As one said sharing is caring so i am doing same.
HTTP1.0(New TCP session for every request one call per TCP session)HTTP1.1(Multiple streams in same TCP session but it will be executed in sequence. Also, with pipeline but had head of line blocking issue if one fails all need to wait)
HTTP2.0(HTTP streams solved HOB but TCP packet lose issue make complete streams to stop and all requests will not be catered)
HTTP3.0(QUIC (UDP used not TCP) is managing streams separately and will not affect other streams in same HTTP session)
So, if multiple streams need to be send over the HTTP protocol best option is HTTP 3.0. Otherwise use the concurrent small open connection for a new API if a sequence call is not completed in last stream.
Raja Shajeel Ahmad
Enterprise DC Engineer
Happy Learning
The limit is the sky.
Comments