- From: Koen Holtman <koen@win.tue.nl>
- Date: Wed, 18 Sep 1996 20:59:16 +0200 (MET DST)
- To: hardie@nasa.gov
- Cc: koen@win.tue.nl, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Ted Hardie: [....] >> >Section 9.6: > > [Koen:] >> I don't see how Negotiate: transparent is better design than just >> Negotiate:, Negotiate: has perfectly fine semantics even if there is >> no value in the header field. I modeled it after Keep-Alive. Are >> you saying that some people hate such constructs enough that a token >> keyword is needed to keep them happy? I thought the general trend on >> this list was to resist unnecessary bytes. > >The problem occurs once you start adding values. At the moment Negotiate: >has a single meaning, and there is no semantic difficulty. Now suppose >that Larry has a stroke of genius one morning and proposes a great new way >to negotiate. And when we start using Negotiate: Masinter, we will all >know that the Negotiation took place using the new Masinter negotiation ^^^^^^^^^^ I think you mean `can take place', Negotiate is a request header which indicates capabilities, not a response header which tells whether capabilities were used. >syntax. But what happens when we want to negotiate using Transparent *and* >Masinter? If we use Negotiate: Transparent, Masinter, it's dead clear. If >we use Negotiate: Masinter, it is not clear whether the presence of the >Negotiate: header is enough alone to indicate whether transparent >negotiation is available, or was used. According to the current definition of the Negotiate header, its presence alone always indicates that TCN is available. > So having an initial value may >save us from having to add cruft in the form of a later Negotiate-Masinter: >header. You would have to go for a Negotiate-Masinter header only if a user agent could support Masinter negotiation without supporting TCN. I don't think I would mind the addition of cruft in that case. However, I also would not mind having `negotiate: transparent' in stead of `negotiate:' that much. This seems largely a matter of taste, so I'll call for WG opinions. ------- To everyone who cares: please answer the questions below and mail the answers directly to me, I'll summarize on the list. Question 1: How should a user agent indicate that it supports transparent content negotiation? [ ] A: By sending the header field `Negotiate:' [ ] B: By sending the header field `Negotiate: transparent' Question 2: If B were used, would you prefer shorter keywords which use less bytes, for example `Negotiate: tcn'? [ ] Yes [ ] No [ ] Don't care -------- For reference, the current section 9.6: 9.6 Negotiate The Negotiate request header can contain directives for any content negotiation process initiated by the request. Presence of this header indicates that the user agent supports transparent content negotiation for the current request. Negotiate = "Negotiate" ":" #negotiate-directive negotiate-directive = token [ "=" ( token | quoted-string ) ] An example is Negotiate: This specification does not define any negotiate-directives, this is left to future extensions. Servers should ignore all negotiate-directives they do not understand. The presence or absence of a Negotiate header in a request is significant in calculations performed by the network negotiation algorithm. Koen.
Received on Wednesday, 18 September 1996 12:03:46 UTC