In HTTP there is the concept of keep-alive and pipelining. Keep-Alive allows one TCP connection to be used across multiple HTTP requests and responses. This allows a browser to load a web page with all its resources (e.g. images, scripts, etc.) on one TCP connection, which avoids the connection setup and tear down overhead. CURL uses this by default, appending Connection: keep-alive
to the header. The server is configured for max requests and how long the connection will remain open. But it still acts in a request- response mode.
With Pipelining multiple requests can be made prior to receiving a response. Pipelining is not widely implemented and to work both the client and server must implement it. To use in CURL you must find a library (there are some out there) which implements it for you client, and again the server must also utilize it.
If you are unsure if your CURL app is sending the keep-alive header then use an http proxy or packet sniffer to inspect your traffic.