- From: Kris Zyp <kzyp@sitepen.com>
- Date: Tue, 19 Feb 2008 12:39:19 -0700
- To: "Maciej Stachowiak" <mjs@apple.com>
- Cc: "Mark Baker" <distobj@acm.org>, <public-webapi@w3.org>
> state of these issues. I will do my best to find whatever information I > can. I appreciate that, I will try to research it as well. Five years is a long time in on the web, a lot could have changed. Some evidence I have turned up with a little research: Opera supports pipelining by default. Firefox allows users to enable pipelining and according to Robert, it will be enabled by default. This indicates that pipelining has been tested by browsers in the wild, it is not without some validity. They both use heuristics to determine if pipelining is appropriate. This most notable heuristic is disabling pipelining for IIS servers, which is another case where origin server knowledge properly facilitates informed consent. > where it will fail, it cannot detect the failure up front or even after > the fact. The result of proceeding in the face of failure will not be a > clear failure but rather data corruption. > > While less than 1% of users may experience these kinds of problems, an Once again, why not let authors make this decision? There are other browser quirks that lead to unpredicable results. If developers think <%1 is worth risk, they should be able to do that. There may be clever ways to work around these issues that we haven't even thought of yet. And once again some developers are developing for intranets where the routes are controlled. Why penalize them due to uncertainties on the open internet? XMLHttpRequest is much different than having some menu option to enable pipelining. Many web developers use frameworks that wrap XHR, but those that actually directly interact with XHR are usually doing so because they want precise control of their requests. Why not let them have it? They can read the literature on how dangerous it is and choose if it is worth it. The fact that Opera and now Firefox are doing so broadly certainly would suggest that it is a valid enough choice that devs could at least opt-in. > I would ask further why HTTP pipelining is especially more important for > XHR than for normal fetching of HTTP resources. Fundamentally, it is > nothing more than a performance optimization, and even the most AJAXey of > sites makes many more ordinary resource requests than XHR requests. I am not opposed to pipelining of all resources, but XHR provides an API for opt-in, so devs can explicitly choose to pipeline. Second, sometimes pipelining can actually be detrimental, if a slow resource ends up having several requests that become queued behind it. With explicit pipelining, developers can have control and ensure the correct delegation of pipeline requests for optimum efficiency. Finally, in particular with "comet-style" long-lived responses, being able to control pipelining is even more important. One can pipeline requests over the long-lived response connection to create a duplex communication over a single TCP connection. One can pipeline requests to another connection to ensure that responses are received properly. There is simply no way to do this efficiently otherwise, and comet-style communication requires two connections for duplex conversation even though it is fully with the means of HTTP do it over a single connection. > I think we need some research before making a decision either way. I just > wanted to make clear the nature of the risks, and in particular that > content author opt-in was not sufficient to fully mitigate them. Freedom is not intended to be a risk mitigation. Opt-in is a choice to accept risk, not mitigate it. > appropriate for this purpose. So I would propose that we define an HTTP > response header field of "Connection: pipeline" to indicate that the > server supports pipelining and encourages its use for this particular > connection. I don't think this is a bad idea. But for the reasons stated above, I still think it is important to have an XHR API to suggest pipelining. Thanks for your feedback. Kris
Received on Tuesday, 19 February 2008 19:40:21 UTC