- 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