[Biojava-l] Semantics of "Accept-Encoding" in HTTP

David Huen smh1008@cus.cam.ac.uk
Wed, 18 Jul 2001 23:15:18 +0100 (BST)


I'm attempting to incorporate compression into Dazzle and I have been
attempting to work out the semantics of the request property
"Accept-Encoding" to implement the implement the encoding negotiations.

To quote the IETF 2068,
"If no Accept-encoding header is present in a request, the server MAY
assume that the client will accept any content coding.  If an
Accept-Encoding header is present, and if the server cannot send a
response which is acceptable according to the Accept-Encoding header, then
this server SHOULD send an error response with the 406 (Not Acceptable)
status code."

It seems to me that I can't indicate the situation where I would like
to have compression (for example gzip) but am prepared to accept unencoded
responses.  If I use "Accept-Encoding: gzip" and it doesn't have it why is
the 406 response recommended rather returning just unencoded data?  So a
compression-incapable client should refuse to to service such a query
rather than provide unencoded data?

Alternatively, if I don't use such an "Accept-Encoding", I am allegedly
permitted to return any encoding?  It seems bizaare!  How can these
semantics be right?  So as compression-capable DAS server getting a query
from a client without such a property, I can send e.g. gzipped
responses?

Where have I misunderstood this?  Surely the negotiation can't possibly be
this bizaare?

Thanks,
David Huen. Dept. of Genetics, U.K.