New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP pipelining insufficiently documented #452
Comments
There’s no mention of pipelining because there is no pipelining
…On Mon, 11 Jan 2021 at 3:49 AM Julian Ospald ***@***.***> wrote:
Manager docs
<https://hackage.haskell.org/package/http-client-0.7.3/docs/Network-HTTP-Client.html#t:Manager>
say:
If possible, you should share a single Manager between multiple threads
and requests.
What does it mean? What happens if I share a Manager and use
forConcurrently
<https://hackage.haskell.org/package/unliftio-0.2.13.1/docs/UnliftIO-Async.html#v:forConcurrently>
to spawn multiple requests? Does it use http pipelining? What does it do?
If not, how to do http pipelining?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#452>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAMCB3WX6AKRBAZUDJBD4TSZJKJPANCNFSM4V44YW3A>
.
|
Is it considered an unnecessary feature? Could you expand more on how to do large batches of requests with http-client? |
Let me turn this around. What exactly do you mean by HTTP pipelining? Because the documentation on |
See https://en.wikipedia.org/wiki/HTTP_pipelining
The questions are simple and clear:
|
This has been a very confusing issue, let me explain why:
I'm not going to go on a spurious fact-finding mission here. If you have reason to believe HTTP pipelining should be added: state it. I'm not going to answer what-if questions with hidden implications. I've already stated: the library doesn't do pipelining. |
Yes, and this could be documented.
The whole point of HTTP pipelining is speeding up latency of large batches of requests, no? I'm not sure why you think I'm having some complicated hidden use case here that I'm not willing to share. In fact, if you looked closely at this github issue, there's a link to the project issue exactly explaining the problem (with all the open-source code attached).
I'm not developing a browser (most ppl don't), so I'm not sure why this should be relevant. Browsers have completely different concerns. It seems you're assuming this means HTTP pipelining is unnecessary. Well, maybe, maybe not. Does http-client support HTTP2 with multiplexing? Then that may be true. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x#http_pipelining
But afais, it doesn't: #178
I was expecting a civil discussion without passive-aggressive comments, that will address the following points:
So I'm not even sure that we need it. I'm looking at options, but the only option seems to be HTTP2. |
Pro-tip: don't use terms like "passive aggressive" if you can't use them correctly, and especially if you're trying to get someone's help. I've already stated: the library doesn't do HTTP pipelining, and you haven't given me a reason to think it needs to. You haven't justified that "optimizing large batches of requests" is something that needs to happen, and I'm not going to spend my time reading another issue on a different issue tracker to try to justify that. |
My apologies @snoyberg - we were a bit loose with terms and got "pipelining" and |
No worries @rvl, thanks for confirming |
Manager docs say:
What does it mean? What happens if I share a Manager and use forConcurrently to spawn multiple requests? Does it use http pipelining? What does it do? If not, how to do http pipelining?
The text was updated successfully, but these errors were encountered: