Re: Apache Groupy

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