11.07.2015 Views

Network Working Group R. Fielding Request for Comments: 2616 ...

Network Working Group R. Fielding Request for Comments: 2616 ...

Network Working Group R. Fielding Request for Comments: 2616 ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

The purpose of the 100 (Continue) status (see section 10.1.1) is toallow a client that is sending a request message with a request bodyto determine if the origin server is willing to accept the request(based on the request headers) be<strong>for</strong>e the client sends the requestbody. In some cases, it might either be inappropriate or highlyinefficient <strong>for</strong> the client to send the body if the server will rejectthe message without looking at the body.Requirements <strong>for</strong> HTTP/1.1 clients:- If a client will wait <strong>for</strong> a 100 (Continue) response be<strong>for</strong>esending the request body, it MUST send an Expect request-headerfield (section 14.20) with the "100-continue" expectation.- A client MUST NOT send an Expect request-header field (section14.20) with the "100-continue" expectation if it does not intendto send a request body.Because of the presence of older implementations, the protocol allowsambiguous situations in which a client may send "Expect: 100-continue" without receiving either a 417 (Expectation Failed) statusor a 100 (Continue) status. There<strong>for</strong>e, when a client sends thisheader field to an origin server (possibly via a proxy) from which ithas never seen a 100 (Continue) status, the client SHOULD NOT wait<strong>for</strong> an indefinite period be<strong>for</strong>e sending the request body.Requirements <strong>for</strong> HTTP/1.1 origin servers:- Upon receiving a request which includes an Expect request-headerfield with the "100-continue" expectation, an origin server MUSTeither respond with 100 (Continue) status and continue to readfrom the input stream, or respond with a final status code. Theorigin server MUST NOT wait <strong>for</strong> the request body be<strong>for</strong>e sendingthe 100 (Continue) response. If it responds with a final statuscode, it MAY close the transport connection or it MAY continue<strong>Fielding</strong>, et al. Standards Track [Page 48]RFC <strong>2616</strong> HTTP/1.1 June 1999to read and discard the rest of the request. It MUST NOTper<strong>for</strong>m the requested method if it returns a final status code.- An origin server SHOULD NOT send a 100 (Continue) response ifthe request message does not include an Expect request-headerfield with the "100-continue" expectation, and MUST NOT send a100 (Continue) response if such a request comes from an HTTP/1.0(or earlier) client. There is an exception to this rule: <strong>for</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!