- 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