Re: [google-gears-eng] Re: Deploying new expectation-extensions

Mark Nottingham wrote:
> ...
>> Well, not entirely.
>>
>> Let's say you've got three concurrent resumable transfers started to 
>> /a, and the server has assigned the etags "C1-1", "C2-1" and "C3-1" to 
>> the three clients.
>>
>> Client 1 starts its upload:
>>
>> REQ: POST /a
>> REQ: If-Match: "C1-1"
>> REQ: Content-Range: 0-50/100
>> REQ: [bytes]
>> RES: 200 OK
>> RES: ETag: "C1-2"
>>
>> ...what I'm concerned if is that we're essentially introduce 
>> ETag-based variant-selection here.
>>
>> So what do these ETags represent in requests *other* than resumable 
>> uploads, such as in:
>>
>> REQ: GET/a
>> REQ: If-Match: "C1-1"
>>
>> ?
>>
>> Will it have an effect?
>>
>> So just avoiding new URIs may look simpler first, but it also requires 
>> additional specification work.
> 
> It will require additional spec work if this use of ETags is 
> incompatible with existing ones. If it is, they shouldn't be used for 
> this purpose at all, but I don't *think* they are (happy to be proven 
> wrong, as always).
> 
> I.e., yes, if-match will work as specified; what else needs to be said?

OK, let's rephrase: what I'm concerned with is this:

- most of the time, resources that support POST for upload have a 
GETtable representation

- these representations (again, most of the time), are not those of 
previous upload, but a form, a collection listing, or both

- so the resource posted to has a very different nature from those it 
creates

- if, for GET/HEAD, the resource assigns and supports ETags, they have a 
very different purpose than those assigned for resumable uploads, and 
those will need to be distinguished upon GET -- so some If-Match headers 
will cause conneg, some won't

So my concern is that we use two different types of ETags on the same 
resource.

 > ...
>> That assumes that PUT with Content-Range can be used today, which 
>> really isn't the case, unless the client can be confident that the 
>> server actually understands PUT with ranges.
> 
> That seems to be a problem with all the approaches on the table, 
> according to the flows in the current document. By the letter of the 
> law, if the server doesn't understand a Content-* header on a PUT 
> request, it should refuse it, but we already have an open issue or two 
> (#79, #102) on that...
> ...

We *couöd' state that minting a new URI for resumable upload implies 
proper server support for PUT/Range; but of course that doesn't help 
with broken intermediaries.

 > ...

BR, Julian

Received on Tuesday, 16 September 2008 08:12:43 UTC