title: Does limiting the maximum number of concurrent connections also limit the number of concurrent requests?
body: <p><a href="https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html" rel="noreferrer">This Web tutorial</a> and also <a href="https://stackoverflow.com/questions/48682147/aiohttp-rate-limiting-parallel-requests/48682456#48682456">this SO answer</a> recommend the use of semaphores to limit the number of concurrent requests made with aiohttp.</p>
  
  <p>I am confused because <code>aiohttp</code> provides on its own a facility to limit the number of concurrent connections (<code>limit</code> and <code>limit_per_host</code>, <a href="https://aiohttp.readthedocs.io/en/stable/client_reference.html#connectors" rel="noreferrer">documented here</a>) - so is using semaphores not reinventing the wheel?</p>
  
  <p>Perhaps it's not. Can there be multiple concurrent requests per connection? It appears there can, as per <a href="https://en.wikipedia.org/wiki/HTTP_persistent_connection" rel="noreferrer">this Wikipedia article</a> and also <a href="https://stackoverflow.com/questions/31812022/number-of-http-requests-per-tcp-connection">this SO answer</a>. So perhaps setting <code>limit</code> and/or <code>limit_per_host</code> in <code>aiohttp</code>, which as per the docs I linked to limits concurrent <em>connections</em>, does not have the effect of limiting concurrent <em>requests</em>.</p>
  
  <p>I'm still confused because if this is the case, what's the use of these parameters <code>aiohttp</code> provides? Why would a user want to limit <em>connections</em> rather than <em>requests</em>? But such reasoning of course doesn't entail anything so I was ready to move on and use semaphores.</p>
  
  <p>Then I stumbled upon <a href="https://stackoverflow.com/questions/35196974/aiohttp-set-maximum-number-of-requests-per-second">this SO question</a>. It has two relatively highly upvoted answers. One of these answers again recommends using semaphores. But the other answer recommends making use of the <code>aiohttp</code> facilities <code>limit</code> and <code>limit_per_host</code>. If this answer is correct then limiting <em>connections</em> in <code>aiohttp</code> also limits <em>requests</em> - so no semaphores are necessary <sub>(unless one also wishes to limit the rate of requests per second, which is not what I'm tackling here)</sub></p>
  
  <p>And this is what I'd like to ask in this question. Does limiting concurrent <em>connections</em> in <code>aiohttp</code> via <code>limit</code> and/or <code>limit_per_host</code> also limit concurrent <em>requests</em>? I suppose that the answer depends on whether <code>aiohttp</code> does or does not use only one connection per request, which I don't know either.</p>
  
  <p>Does <code>aiohttp</code> only use one connection per request? Does limiting concurrent connections also limit concurrent requests?</p>