- From: Roy T. Fielding <fielding@gbiv.com>
- Date: Wed, 29 Feb 2012 10:50:23 -0800
- To: Carsten Bormann <cabo@tzi.org>
- Cc: Julian Reschke <julian.reschke@gmx.de>, Martin Thomson <martin.thomson@gmail.com>, Mike Kelly <mikekelly321@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
On Feb 29, 2012, at 9:46 AM, Carsten Bormann wrote: > On Feb 28, 2012, at 20:54, Roy T. Fielding wrote: >> On Feb 28, 2012, at 9:31 AM, Carsten Bormann wrote: >> >>> I'm not sure we are communicating. >>> >>> In the web-as-deployed, partial updates often use the PUT method. >> >> In the Web as defined, standardized, and deployed, those partial >> updates using the PUT method are not interoperable with standard >> HTTP/1.x servers. [...] >> Any software that uses Content-Range in PUT requests is BROKEN. > > Thanks, that was part of the input I was looking for. > > For the other part of discussion we are having (PATCH vs. idempotence), it would be useful to know what specifically broke when people started using PUT for partial updates. In particular, it would be good to know if the same breakage occurs with an idempotent version of PATCH. When a server that implemented PUT prior to the introduction of Content-Range received a partial content body that included such a range, they would replace the entire resource representation with the partial body. That is how PUT was defined to work. That's how it was implemented long before ranges existed. Hence, the introduction of partial PUT would only be possible with a strong coupling between client and origin server implementations, which violates the design of the HTTP. By design, HTTP method semantics cannot be changed in an incompatible way without a major version change in the protocol. Since the WG refused to bump the protocol version, partial PUT was forbidden. PATCH was delegated to the WebDAV group to standardize. ....Roy
Received on Wednesday, 29 February 2012 18:50:53 UTC