On Tue, Oct 24, 2000 at 07:56:51AM +0200, Daniel Stenberg wrote:
> On 23 Oct 2000, Ben Collins-Sussman wrote:
> > Greg Stein <gstein@lyra.org> writes:
> >
> > > HTTP can also (tranparently) add GZIP encoding on top of that
> > > automatically.
> >
> > Apache automatically deflates data? I'm curious about this statement.
> > What are the details?
>
> Client sends:
>
> Accept-Encoding: gzip
>
> Server sends:
>
> Content-Transfer-Encoding: gzip
[ talking with Roy Fielding right now... primary author of the HTTP spec ]
That is the MIME (mail) header. HTTP uses Transfer-Encoding if the wire form
is gzip'd. If the original resource is gzip'd, then the Content-Encoding is
set to gzip (essentially, it is a modifier of the Content-Type header).
Roy also says that Content-Encoding is pretty broken; but hey... we wouldn't
be using it anyhow.
In any case, Apache has just recently finalized its "input filtering"
design. We will have an input filter to deflate incoming gzip'd data. Apache
has also had output filtering for a number of months, and that would be used
to compress the data on output.
Next, we would need Neon to support it. I ribbed Joe on Sunday to add it to
Neon. We'll get it sometime, but (of course) Joe wouldn't promise anything
:-) I certainly believe that if we gave Joe the patches, then Neon would
support the stuff.
So... assuming that we get Neon going with it, and that Apache finishes its
filters (high probability), then we add Transfer-Encoding to the request
(say, on a PUT) and Apache will deflate during input processing. The client
would also add Accept-Encoding to all requests and deflate the response;
Apache would see the Accept-Encoding and compress the output during the
output filtering process.
[ asked Roy about this: ]
The trick is how does the client know the server will *accept* a
Transfer-Encoding of gzip? Roy says you simply need to know that
out-of-band. Also, a server is supposed to return 501 (Not Implemented) if
it does not understand a Transfer-Encoding.
Certainly, in Subversion 1.0, our client and server are tied, so we know
that the server will accept and generate gzip'd data. In the future, we may
need a way to deal with the client-to-server encoding.
Cheers,
-g
--
Greg Stein, http://www.lyra.org/
Received on Sat Oct 21 14:36:12 2006