PUT with Content-Range

The basic idea is to allow PUT with Content-Range, and allow caches to apply
the update when possible to avoid having to refetch the whole entity-body,
and to create a model for (e.g.) WebDAV that wants to do partial updates on
resources.

Add a section:
=====================
9.6.1 Partial PUT (PUT with Content-Range)

A PUT method MAY supply a partial entity body specified by a Content-Range
header. The PUT requests that the resource be updated or created with the
partial entity-body, in a manner entirely up to the origin server. However,
the origin server may indicate to caches that they may perform the same
update to a cached copy.

Note: Even if partial PUT is not exceedingly interesting, it should
establish a paradigm for possible future methods that do incremental updates
to resources and want to allow incremental updates to cached copies.

> 1. An HTTP/1.1 server that doesn't support PUT with Content-Range MUST
> reply with "507 Partial Update Not Implemented" and MUST NOT perform any
> action on the requested resource.
> 
> 2. An HTTP/1.1 client MUST know that that the origin server for the
> request supports PUT with Content-Range header (but not neccessarily on
> the specified resource) before attempting such a request. This is
> necessary since a pre-1.1 server that does not understand PUT with
> Content-Range header will overwrite the whole resource instead of just the
> Content-Range the client requested.
> 
> 3. An HTTP/1.1 origin server MAY reply to a PUT with Content-Range with a
> "207 Partial Update OK" if the change in the entity body of a cached
> response can be duplicated by a cache by merely replacing the bytes at the
> byte positions specified in the Content-Range  with the corresponding
> bytes in the entity-body in the request. Client and proxies that don't
> understand "207 Range Update" will be correct if they treat it as "200
> OK". (Recall that responses to PUT are not cachable)
> 
> 4. An HTTP/1.1 cache receiving a "207 Partial Update OK" status-code in
> the response to a PUT with Content-Range MAY update the entity in the
> cache as described above; if it does not, or if the status-code is
> anything else, it MUST invalidate the entity, as per section 9.6)
=================

Add a section:
=================
10.2.8 207 Partial Update OK

The server has fulfilled a method that specified a partial update, and the
change in the resource may be mimiced by a cache that understands the
method. In the case of partial PUT
the change in the resource can be duplicated by a cache merely by replacing
the bytes at the byte positions specified with the corresponding bytes in
the entity-body in the request.
==================

Add a section:
==================
10.5.8 507 Partial Update Not Implemented

The server does not support paritial update on the specified resource.

===================


Paul

Received on Thursday, 20 November 1997 11:58:05 UTC