- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Wed, 02 Jul 97 12:28:21 MDT
- To: "David W. Morris" <dwm@xpasc.com>
- Cc: http-wg@cuckoo.hpl.hp.com
Re:
The Expected request-header field is used to indicate that
particular conditional behaviors are required by the client.
An origin server which does not understand or is unable to
comply with an Expected field value stipulation MUST
respond with appropriate error status.
Expected = "Expected" ":" 1#expected-stipulation
expected-stipulation = "100-continue" | extension-stipulation
extension-stipulation = token [ "=" ( token | quoted-string )
*stip-params ]
stip-params = ";" token [ = ( token | quoted-string ) ]
When the 100-continue stipulation is present on a request which
includes a body, the requesting client is waiting after sending
the request headers prior to sending the content-body. Thus, the
server MUST conform to the requirements of section 8.2 and
either send 100 (Continue) status or error status after receiving
the "Expected: 100-continue" request header.
This header field is defined with extensible syntax to allow for
future extensions.
Many people are confused about the meaning of the word "stipulate".
Your use does conform to what my dictionary says, but perhaps it
would be clearer to use the term "expectation"? I.e., rewrite
that passage to be:
The Expected request-header field is used to indicate that
particular server behaviors are required by the client. A
server that does not understand or is unable to comply with any of
the expectation values in the Expected field of a request MUST
respond with appropriate error status.
Expected = "Expected" ":" 1#expectation
expectation = "100-continue" | expectation-extension
expectation-extension = token [ "=" ( token | quoted-string )
*expect-params ]
expect-params = ";" token [ = ( token | quoted-string ) ]
The server SHOULD respond with a 412 (Precondition Failed) status
if any of the expectations cannot be met.
When the "100-continue" expectation is present on a request that
includes a body, the requesting client will wait after sending the
request headers before sending the content-body. In this case, the
server MUST conform to the requirements of section 8.2: it MUST
either send a 100 (Continue) status, or an error status, after
receiving the "Expected: 100-continue" request header.
This header field is defined with extensible syntax to allow for
future extensions. If a server receives a request containing
an Expected field that includes an expectation-extension that
it does not support, it MUST respond with a 412 (Precondition
Failed) status.
I also did some more massaging on the text, including
(1) changed some "which"s to "that"s (see Strunk & White).
(2) made it clear that if the request depends on multiple
expectations, they all must be satisfied.
(3) deleted "origin", as per Koen's message
(4) made specific reference to the 412 status code,
already defined for this purpose.
(5) made it clear what a server must do if this mechanism
is extended.
In some of these cases, I just had to guess what you intended
(because it wasn't unambiguous).
-Jeff
Received on Wednesday, 2 July 1997 12:38:18 UTC