W3C home > Mailing lists > Public > ietf-http-wg@w3.org > January to March 2012

Re: Idempotent partial updates

From: Julian Reschke <julian.reschke@gmx.de>
Date: Wed, 29 Feb 2012 19:54:18 +0100
Message-ID: <4F4E745A.10503@gmx.de>
To: "Roy T. Fielding" <fielding@gbiv.com>
CC: Carsten Bormann <cabo@tzi.org>, Martin Thomson <martin.thomson@gmail.com>, Mike Kelly <mikekelly321@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
On 2012-02-29 19:50, Roy T. Fielding wrote:
> 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.

Yes.

But I *think* there's some terminology confusion here.

When Mike, who brought this up, talks about partial updates with PUT, 
he's referring to a PUT request *without* Content-Range, replacing 
*parts* of the identified resource; and leaving the remainder alone.

Best regards, Julian
Received on Wednesday, 29 February 2012 18:54:53 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 06:51:56 GMT