Nathaniel J. Smith
Nathaniel J. Smith
This is only relevant for sync mode, so blocking I/O isn't *necessarily* a problem. We do need to impose a timeout somehow. I think for `ssl` in blocking mode, the...
@RonnyPfannschmidt Good question :-). Cleaning up resources is generally a good thing! Though... do you actually make a habit of closing your `requests.Session`s before your program exits, and if so,...
@jtrakk whoops, thanks, fixed
> Browsers have a global cookie jar and it works out OK for them. Heh, I looked into the Fetch API today, and it turns out that this comment I...
Yeah, proxies are going to have some special case logic; no way around it. Let's imagine we have functions `pool.get_connection(config) -> conn` and `pool.put_connection(config, conn)`. > HTTP->HTTP and HTTPS->HTTP: Proxy...
Maybe the abstraction we want to represent a single request/response cycle at a low-level is something like: ```python class OneHTTPTransaction(ABC): async def send_request_data(self, data) -> None: ... async def send_eof(self,...
> I'm worried about handling cases where a single HTTP/2 proxy connection ends up representing tunnels to different endpoints. Have to think about all the scenarios that the pool can...
Ohh, yeah, cache eviction policy is a whole other topic, right. For HTTP/1.1 it's simpler: either a connection is in use, or it's sitting idle in the pool. If it's...
The biggest difference between HTTP/1.1 and HTTP/2 here is that for HTTP/1.1, you don't really need to keep track of active connections, so you can use "in the pool" as...
That sounds plausible, yeah. Python's TLS ecosystem will probably catch up with this stuff eventually, but... TLS APIs are messy. The part I was worried about immediately was figuring out...