title: Is HTTP connection pooling possible?
body: <p>For a C# webservice that contacts a limited set of other servers, I wish to create 1 HTTP connection pool per server that I want to be able to contact.</p>
  
  <p>The basic concept of course:</p>
  
  <ul>
  <li>Each pool should open a few connections (3 connections?) to its remote webserver, and keep those connections alive.</li>
  <li>A max-time-to-life should be used to recycle (disconnect/reconnect) the connections to the remote webserver, preventing the remote web server to disconnect before we do.</li>
  <li>The connections should not be created simultaneously but with a little pause between the 3 connections so the recycling also does not happen simultaneously.</li>
  <li>If the remote webserver still does disconnect unexpectedly, it should be noticed and we should reconnect.</li>
  <li>If reconnecting is not possible for some reason, a retry should be done after a little pause.</li>
  </ul>
  
  <p>This way, when I want to send a HttpWebRequest, I have ready-to-use connections, sparing the time of setting up the connection at the moment that I want to use it.</p>
  
  <p>At the moment I don't know if this is even a default feature of HttpWebRequest. So sorry if I'm asking for the obvious. Googling for this only led me to similar questions for Java.</p>
  
  <p>Question 1: is there such a thing present in .NET/c#?</p>
  
  <p>Question 2: if not, is there a resource on this present on the internet, that you know of?</p>
  
  <p>Question 3: if not, how to approach building one myself?</p>