Whatever happened with Partial PUTs

Hi,

Last week I posted something to the HTTP list (copied below) and I've 
received no response. So this morning I searched the w3c archives and 
found that my issue had been discussed before on this list (see 
<http://lists.w3.org/Archives/Public/w3c-dist-
auth/1997JanMar/thread.html> and look for "Partial Put"). However, I 
didn't find that the issue of partial or ranged PUTs has ever been 
resolved.

As Yaron Goland said at the time 
<http://lists.w3.org/Archives/Public/w3c-dist-
auth/1997JanMar/0258.html>, "As anyone running on a 28.8 modem or less 
will tell you, this isn't an optimization, this features determines if 
the user can function." I wouldn't limit that to 28.8 modems -- with 
large enough files, this can even affect users with fast connections.

I know that mod_dav allows Content-Range headers with PUTs. However, it 
only allows a file's existing content to be changed and for new content 
to be appended to the end of the existing content. We also need to be 
able to change the length of a resource without changing the content.

So, what happened with this issue?

Jim Luther
Apple Computer, Inc.

> From: Jim Luther <luther.j@apple.com>
> Date: Thu Jan 31, 2002  06:13:20 PM US/Pacific
> To: http-wg@cuckoo.hpl.hp.com
> Subject: Ranged PUT and changing an entity's length
>
> Hi,
>
> Mac OS X has a file system which uses HTTP and the WebDAV extensions. 
> Today, when an file entity on a DAV server is opened with write access, 
> our file system GETs the entire entity from the server and then works 
> with the local copy. When that entity is closed or synced, the local 
> copy is PUT back to the server.
>
> I'd like to change our code so that individual write requests to the 
> server entity are write-through to the server, but to do that, I need 
> to be able to do a ranged PUT with the range possibly starting and 
> ending beyond the entity's current instance-length (the current length 
> of the entity on the server). In addition, to be able to handle seek 
> and truncate requests, I need to be able to change the instance-length 
> without changing any data to both to make the entity either larger or 
> smaller.
>
> RFC 2616 doesn't really say how a Content-Range header might be used to 
> specify a ranged PUT request (it only discusses how a server would use 
> it to reply to a ranged GET), and nowhere that I can find does the RFC 
> say how the length of an entity can be changed (although I was thinking 
> that maybe the byte-content-range-spec in a Content-Range header could 
> look something like "bytes */100" to set the length of an entity to 100 
> without changing any data).
>
> So, my two questions:
>
> 1 - Are ranged PUTs possible and if so, what should the headers look 
> like?
>
> 2 - Can the length of an entity be changed and if so, what should the 
> headers look like?
>
> Thanks,
>
> Jim Luther
> Apple Computer

Received on Monday, 4 February 2002 14:05:09 UTC