- From: Alexei Kosut <akosut@nueva.pvt.k12.ca.us>
- Date: Wed, 19 Feb 1997 17:47:52 -0800 (PST)
- To: Henrik Frystyk Nielsen <frystyk@w3.org>
- Cc: HTTP Working Group <http-wg@cuckoo.hpl.hp.com>
On Wed, 19 Feb 1997, Henrik Frystyk Nielsen wrote: [The Apache Group's dealings with HTTP/1.1] > I think it would be a tremendous help if you wrote up as much as you have > and send it to the list ASAP. I found it very useful and very productive to > work with Dean Gaudet on optimizing beta versions of Apache for HTTP/1.1 > pipelining. Okay, here's one: I should point out that this is not a problem with the HTTP/1.1 spec itself, per se, and falls more under the category of "standards are great; everyone's is different!" Section 19.2 of HTTP/1.1 defines multipart/byteranges as the response media type to be used for a multipart byterange request. Now, this, and the other byterange sections of the draft (except for If-Range) were based on the Luotenen/Franks drafts about byteserving. In fact, the last of those drafts and the HTTP/1.1 semantics are nearly identical, and almost interoperable. Almost. These versions of the spec did not define multipart/byteranges. They used instead multipart/x-byteranges. I won't speculate why, but for whatever reason, they did. Several browsers were coded to this now out-of-date specification, including Netscape Navigator 2 and 3, and Microsoft Internet Explorer 3; several servers were also coded this way. The result? Any HTTP application that implements the HTTP/1.1 specification for byteranges is not compatible with these implementations. For example, when Navigator would request a PDF file (the PDF plugin requests multiple byteranges; one part for each page of the file, I believe), Apache would send a multipart/byteranges response. Navigator's behavior is at this point incorrect (basically, the window just goes blank, at least with the Mac version). Our eventual decision was that Apache 1.2b7 (which has not yet been released) will contain what amount to User-Agent checks for these two browsers (there may be others, but we are not aware of them), and it will send multipart/x-byteranges to them. We have also been assured by Netscape and Microsoft that future versions of their browsers will understand multipart/byteranges. To be sure, neither Navigator nor IE claim to be HTTP/1.1-compliant, nor do any of the servers that send multipart/x-byteranges by default. However, they do cause problems with clients and servers that are compliant with HTTP/1.1 - a spec supposedly 100% backwards-compatible with HTTP/1.0. I guess the problem is also one of interim standards; the spec to which these HTTP applications adhere no longer exists: It was an internet draft that expired some time ago. Someone writing a server today might look at the HTTP/1.0 and HTTP/1.1 specs, and implement a server (the same applies to a browser; I'm speaking here from my experiences) that is 100% to-the-letter compliant with both. They might then assume that their server would be compatible with the plethora of browsers that are out there. They'd be wrong, at least in this respect. Anyhow, I just thought I'd share that... -- ________________________________________________________________________ Alexei Kosut <akosut@nueva.pvt.k12.ca.us> The Apache HTTP Server URL: http://www.nueva.pvt.k12.ca.us/~akosut/ http://www.apache.org/
Received on Wednesday, 19 February 1997 17:53:38 UTC