Re: Updated Patch

On Dec 22, 2008, at 2:47 AM, Julian Reschke wrote:

> Lisa Dusseault wrote:
>>> I can't recall why we're making this requirement; it seems to copy a
>>> requirement for PUT. However, for PUT, "applying an entity header"  
>>> just
>>> means storing it. What does it mean for PATCH? This introduces a
>>> "must-understand" rule without knowing what "understand" precisely  
>>> means...
>> This seems to have gotten broken unintentionally.  It used to read  
>> "The server MUST NOT ignore any Content-* headers".  That's a much  
>> more reasonable requirement, because the server can tell what  
>> headers are Content-* headers while it can't tell what entity- 
>> headers are. And the requirement to understand the Content-*  
>> headers means that the server knows what to do with it which  
>> depends on : to save the Content-Type or Content-Language as  
>> metadata, to confirm or ignore the Content-Length, etc.
>
> Well, RFC 2616 says that any header that is not a request or general  
> header is an entity header. And yes, this is not really true in  
> practice.
>
> An no, the entity header, thus the Content-* headers do *not* apply  
> to the resource being patched, but to the payload. So when I use  
> Content-Type: application/diff in a PATCH request, I do *not* want  
> that to be set on the resource being patched :-).

If I had a better memory, I wouldn't have circular arguments like  
this.  Argh.  Yeah, Content-Type is universally used to indicate the  
content of the payload, and shouldn't be used to change the Content- 
Type of the resource being patched.

There is a minor problem of Content-Language, I think the other  
Content-* headers are even more irrelevant.  How many systems out  
there actually save the Content-Language provided by the client in a  
PUT?  And for those systems, is the only way to change the Content- 
Language to issue another whole PUT?  What would those systems want a  
PATCH with a Content-Language to mean -- (1) "This is the new Content- 
Language for the resource, please save it" or (2) "This is the  
language of the PATCH payload so it's irrelevant, throw it away" or  
(3) illegal.

thanks,

Lisa

Received on Monday, 22 December 2008 17:03:48 UTC