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

Reply via email to