- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Tue, 22 Jul 97 16:30:47 MDT
- To: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
I realize that some people were opposed to the introduction of qvalues on Accept-Encoding. However, during today's editorial-group discussion of the CONTENT-ENCODING issue, we realized that the syntax for the various Accept-* request headers in RFC2068 is almost, but not quite, uniform, and we reached a tentative agreement that it might be a good idea to have all of the Accept-* request headers (Accept-Range is a response header) have similar syntaxes. Anyway, here are the BNFs in question, from RFC2068: 14.1 Accept Accept = "Accept" ":" #( media-range [ accept-params ] ) media-range = ( "*/*" | ( type "/" "*" ) | ( type "/" subtype ) ) *( ";" parameter ) accept-params = ";" "q" "=" qvalue *( accept-extension ) accept-extension = ";" token [ "=" ( token | quoted-string ) ] 14.2 Accept-Charset Accept-Charset = "Accept-Charset" ":" 1#( charset [ ";" "q" "=" qvalue ] ) 14.3 Accept-Encoding Accept-Encoding = "Accept-Encoding" ":" #( content-coding ) 14.4 Accept-Language Accept-Language = "Accept-Language" ":" 1#( language-range [ ";" "q" "=" qvalue ] ) language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" ) The CHARSET-WILDCARD issue, already declared "closed", changes the BNF for 14.2 (Accept-Charset) to include "*", based on ftp://ds.internic.net/internet-drafts/draft-holtman-http-wildcards-00.txt so that the BNF there is now: Accept-Charset = "Accept-Charset" ":" 1#( charset [ ";" "q" "=" qvalue ] ) Henrik's proposed solution for CONTENT-ENCODING, at http://www.ics.uci.edu/pub/ietf/http/hypermail/1997q3/0038.html would modify the BNF for 14.3 (Accept-Encoding) to be Accept-Encoding = "Accept-Encoding" ":" #( codings ) codings = ( content-codings | "*" ) As you can see, there are only two non-uniformities remanining among these four sections: (1) The Accept header allows extension parameters, not just qvalues. (2) The Accept-Encoding header does not allow qvalues. I'll also note that RFC1945, while not defining qvalues, does say: D.2.3 Accept-Encoding The Accept-Encoding request-header field is similar to Accept, but restricts the content-coding values which are acceptable in the response. I.e., there seems to have been an intent that Accept-Encoding be similar in form to Accept, and (perhaps) that the omission of a qvalue here was simply an oversight. (Note that RFC1945 explicitly allows "*/*" in the Accept header, so it implicitly allows "*" in the Accept-Encoding header, and so I think we need to include "*" in the Accept-Encoding header simply for compatibility with RFC1945.) As I said in my previous message, introducing qvalues for Accept-Encoding won't work "if any existing servers or proxies would choke on a qvalue in an Accept-Encoding header." But (so far) nobody has asserted than this is an actual problem. -Jeff
Received on Tuesday, 22 July 1997 16:43:56 UTC