- From: Koen Holtman <koen@win.tue.nl>
- Date: Mon, 30 Jun 1997 20:25:35 +0200 (MET DST)
- To: "David W. Morris" <dwm@xpasc.com>
- Cc: http-wg@cuckoo.hpl.hp.com
David W. Morris:
>
[...]
>
>.... The proposal:
Overall, this looks good to me. Some nitpicks included below.
>
>Add a new --new-- bullet item in following the --old-- bullet in
>section 8.2 (lines 2566-2567) to result in the --new--:
>
>--old--
>o An HTTP/1.1 (or later) client MUST be prepared to accept a 100
> (Continue) status followed by a regular response.
>
>--new--
>o An HTTP/1.1 (or later) client MUST be prepared to accept a 100
> (Continue) status followed by a regular response.
>
>o An HTTP/1.1 (or later) client MUST send the new "Expected:"
> request header with "100-Continue" specified if the client will
> wait after sending the request headers before sending the
> request body.
>
>The following --old-- paragraph in section 8.2 (lines 2583-2589)
>should be replaced with the --new-- wording:
>
>--old--
> Upon receiving a method subject to these requirements from an
> HTTP/1.1 (or later) client, an HTTP/1.1 (or later) server MUST either
> respond with 100 (Continue) status and continue to read from the
> input stream, or respond with an error status. If it responds with an
> error status, it MAY close the transport (TCP) connection or it MAY
> continue to read and discard the rest of the request. It MUST NOT
> perform the requested method if it returns an error status.
>
>--new--
> Upon receiving a request which includes a content body and the
> "Expected: 100-Continue" request header, an HTTP/1.1 (or later)
^^^
Add: `from an HTTP/1.1 client'. A 1.0 proxy will not strip off this
header when relaying a request.
> server must either respond with
> 100 (Continue) status and continue to read from the
> input stream, or respond with an error status. If it responds with an
> error status, it MAY close the transport (TCP) connection or it MAY
> continue to read and discard the rest of the request. It MUST NOT
> perform the requested method if it returns an error status.
>
> For compatibility with RFC 2068, an HTTP/1.1 (or later) server
> MAY send an intermediate 100 (Continue) status as described above
> to an HTTP/1.1 (but NOT later) client which didn't include the
> "Expected: 100-Continue" request header with 100 (Continue) status
> to minimize any client processing delays associated with an
> undeclared wait for 100 (Continue) status.
>
> (Possible implementation note: It is never necessary to send
> the 100-Continue status if the server has already received some
> portion of the request body.)
>
>The new "Expected:" header description should be included
>as section 14.21 by renumbering the current 14.21 and beyond.
>Insert proposed wording following line 6525:
>
> 14.21 Expected
>
> 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
^^^^^^
Delete origin.
> 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.
As the 100 mechanism is hop-to-hop, it looks like Expected must be a
hop-to-hop header, so it must be added to the list in section 13.5.1,
and the following text should be added to the header definition:
The Expected header field is a hop-by-hop header field, and MUST be
listed in a Connection header field, as described in section 14.10,
when included in the request.
As there are no 1.1 proxy implementations yet (I believe), we _could_
get away with not requiring the Connection header. This is an issue
which needs to be discussed.
Koen.
Received on Monday, 30 June 1997 11:28:58 UTC