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