Re: Grammar for User-Agent header

>> > The grammar for the User-Agent header currently reads like this:
>> > 
>> > >       User-Agent      = "User-Agent" ":" 1*( product )
>> > >
>> > >       product         = token ["/" product-version]
>> > >       product-version = 1*DIGIT "." 1*DIGIT
> ...
>> > 
>> Sounds fair - what about:
>> 
>> 	User-Agent      = "User-Agent" ":" 1*( product )
>> 	product         = token ["/" token]

I can live with 

        User-Agent      = "User-Agent" ":" 1*( product )
        product         = token ["/" product-version]
        product-version = token

Note, however, that token has a restricted set of allowed characters
as specified in the BNF.  The reason product-version is separate is
so that I can explicitly state what is not allowed in the version from
a semantic point-of-view.

> Yes, where token is any string of characters which doesn't require URL
> encoding *OR* any string of characters inside of quotes.  User-Agent
> should be required to be a unique identifier for a particular version
> of User-Agent.  The standard should be absolutely relaxed about the
> format of the identifer except that it should be allowed to inhibit
> proper parsing of subsequent headers.  Might include words to describe
> how to insure uniqueness?  Or leave it to follow the course of domain
> names.  Or register the unique portion of the ID, etc..

None of the above.  The HTTP protocol will assume that client authors
will want to give their products suitable product tokens.  Requiring a
registry will not work due to the overhead and market considerations.
However, it would be nice if W3C set up a voluntary registry.

> It should be recommended that a human be able to read the string and
> relate it to external version control parameters.  

Nope.  This string is explicitly not intended for human readability.


......Roy Fielding   ICS Grad Student, University of California, Irvine  USA
                                     <fielding@ics.uci.edu>
                     <URL:http://www.ics.uci.edu/dir/grad/Software/fielding>

Received on Wednesday, 18 January 1995 02:49:43 UTC