- From: Paul Leach <paulle@microsoft.com>
- Date: Wed, 19 Nov 1997 17:46:09 -0800
- To: 'http-wg' <http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com>
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