Re: 'PUT' transaction reconsidered (was Re: two-phase send concerns )

Alex Hopmann:
>Rohit Khare wrote:
>>Basically, you probe (in GET or HEAD) to get a lease; if you do get a lease,  
>>for the next delta-t seconds, you're entitled to use that lease in a  
>>Authorization: header (using the LEASE scheme) to execute an exclusive PUT or  
>Well I don't know about the "lease" idea, but I definatelly think you are on
>the right track with the "you probe" idea. One of the beauties of HTTP is
>that there is a very clear model:
>Step 1: Client makes a request. Server just receives.
>Step 2: Server sends a response. Client just receives.
>The two-phase send changes some of the clarity of this model.

Yes, and this changing of clarity comes at a price: the CGI interface
will need to be extended to handle reciept of two-phase sends.  This
will impact on http server CGI handling code and on CGI library code.

I'm not yet sure we should be willing to pay that price.  The
two-transaction model you bescribe below seems like an equaly good
solution to me.

> However it is
>possible to accomplish much the same thing (At least the goals as Roy
>expressed them in Dallas), by doing a probe:
>Transaction #1 "The Probe"
>Client asks the server if the following send is acceptable, using a GET,
>HEAD, or some new method. Server responds.
>Transaction #2 "The Send"
>If the server answered transaction #1 in the affirmative, client sends the data.
>Now a couple of notes:
>1) Don't pay too much attention to the word transaction above. I know it
>implies more than I mean, but I can't think of a better word at this minute.
>2) The above only makes sense (in terms of performance) in the context of
>persistant connections.
>3) In situations where clients either don't care, or are sure that their
>"send" is acceptable, they can skip the "probe".

More notes:
4) The server should _still_ have the option to refuse to actually
perform the request in transaction #2 above, even if it has said to go
ahead in the probe transaction.
5) A client sending a probe could be said to be asking the
question: 'would it make sense for me to send this request with a very
large request body?'.
6) Probes (and two-phase sends) are really a device to save bandwidth
by sometimes preventing the useless sending of large requests.
Extending their semanctics to be also a device for temporary locking
does not buy us anything.
7) Clients can skip sending a probe if the request body is small anyway.

>Alex Hopmann
>ResNova Software, Inc.


Received on Friday, 15 December 1995 01:11:27 UTC