- From: James Snell <jasnell@gmail.com>
- Date: Mon, 19 Dec 2011 11:37:38 -0800
- To: Alex Rousskov <rousskov@measurement-factory.com>
- Cc: HTTP Working Group <ietf-http-wg@w3.org>
Ok.. another iteration... bumped it once but realized just after that I had omitted the Date header from the wait examples so bumped it again... http://www.ietf.org/id/draft-snell-http-prefer-10.txt - James On Mon, Dec 19, 2011 at 10:00 AM, James Snell <jasnell@gmail.com> wrote: > Thx for the quick response... I'm making some tweaks and using some of > your suggested text in the next draft. > > I'd like to be able to put a wrap on this after this next iteration. > > - James > > On Sun, Dec 18, 2011 at 9:15 PM, Alex Rousskov > <rousskov@measurement-factory.com> wrote: >> On 12/18/2011 07:46 PM, James Snell wrote: >>> Updated version based on the latest round of feedback... >>> >>> http://www.ietf.org/id/draft-snell-http-prefer-08.txt >> >>> In the case generating a response will take longer than the time >>> specified, the server, or proxy, can choose to either return a 202 >>> Accepted response, cancel processing, or continue attempting to >>> complete the request >> >> If you want to recommend one of TWO server actions (either "return 202" >> or "continue"), then please remove "cancel processing" to avoid the >> implication that there is a third action. >> >> If you want to recommend one of THREE server actions ("return 202", >> "cancel processing", or "continue"), then please consider removing >> "either". In this case, you may want to clarify what "cancel processing" >> means from the HTTP protocol point of view. Some kind of response is >> probably appropriate even if request processing is canceled. >> >> Please consider replacing "can choose to" with "MAY". >> >> >>> Failing to include a Date header field in the request would >>> require the server to use the instant it received and began >>> processing the request as the baseline for determining how long the >>> client has been waiting which could yield unintended results >>> depending on how out of synch the client and server clocks are. >> >> The "depending on how out of synch the client and server clocks are" >> trailer should be removed because: >> >> 1) When the clocks are out of sync, the Date header can only hurt so the >> "Failing to include" precondition is not applicable when clocks are out >> of sync. >> >> 2) When the clocks are in perfect sync, but there is no Date header, >> then there still will be "unintended results", caused by absence of any >> information regarding how long the client has already been waiting for >> when the server received the request. >> >> In other words, the Date header is no meant to solve the problem with >> out-of-sync clocks. It is meant to solve the problem of a [long] chain >> of [slow] connections/proxies eating at the remaining time to process >> the request. >> >> >>> Note that because of the inherent difficulties in reliably >>> determining the length of time a request will take to arrive at >>> server, the wait preference is, at most, a hint to the server as to >>> what the client is likely to do should the processing of a request >>> take too long. >> >> It feels like the "is, at most, a hint" part implies that all of the >> above specs were useless. If the preference is just such a hint (or >> less!), there is no need to specify the wait time. Perhaps it would be >> better to rephrase the above in most specific terms? For example, >> >> Lack of a Date header or poor clock synchronization makes it impossible >> to determine the exact length of time the client has already been >> waiting for when the request was received by the server. The only >> reliable information conveyed by the wait preference is that the client >> is not expecting the server to spend more than the specified time on >> request processing and may terminate the transaction at any time. >> >> >> >>> When specifying a value for the wait preference, >>> Client's need to take appropriate care to specify a reasonable period >>> of time. >> >> Replace "Client's need" with "client needs". I would actually remove >> this sentence completely because it essentially says that "client needs >> to be reasonable" which is kind of obvious/understood. >> >> Moreover, when thinking about a _client_ implementation, I think all of >> the above complications become unimportant. Our assumption is that the >> client has its reasons to limit the wait. It should not be important to >> the _client_ what portion of its lifetime the request spends in-transit >> or whether the clocks are in sync. All of that is outside client control >> anyway. The client has reasons to terminate the transaction in X seconds >> [after Date], and that is what it should say using this preference. >> >> >> HTH, >> >> Alex.
Received on Monday, 19 December 2011 21:30:53 UTC