To PUT
data to the server compressed you must compress the request body and set the Content-Encoding: gzip
header. The header itself must be uncompressed. It's documented in mod_deflate:
The mod_deflate module also provides a
filter for decompressing a gzip
compressed request body. In order to
activate this feature you have to
insert the DEFLATE filter into the
input filter chain using
SetInputFilter or AddInputFilter.
...
Now if a request contains a
Content-Encoding: gzip header, the
body will be automatically
decompressed. Few browsers have the
ability to gzip request bodies.
However, some special applications
actually do support request
compression, for instance some WebDAV
clients.
And an article describing it is here:
So how do you do it? Here is a blurb,
again from the mod_deflate source
code: only work on main request/no
subrequests. This means that the whole
body of the request must be gzip
compressed if we chose to use this, it
is not possible to compress only the
part containing the file for example
in a multipart request.
Separately, a browser can request server response content to be compressed by setting Accept-Encoding
header as per here:
GET /index.html HTTP/1.1
Host: www.http-compression.com
Accept-Encoding: gzip
User-Agent: Firefox/1.0
This will return compressed data to the browser.