Subject: NEW ISSUE: Content-Location vs PUT/POST

From: Julian Reschke <[email-masked]>
Date: Tue, 31 Jul 2007 18:17:52 +0200

Hi,

the definition of Content-Location 
(<http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.14.14.p.7>) 
ends with:

"The meaning of the Content-Location header in PUT or POST requests is 
undefined; servers are free to ignore it in those cases."

This was added in RFC2616 (does not appear in RFC2068).

I have no problem allowing servers to ignore it. However:

1) It seems that the meaning of Content-Location is universal for 
messages that carry an entity; I'm not sure what's the point in claiming 
that meaning does not apply to PUT or POST.

2) Also: every time a limited set of methods is mentioned somewhere it 
feels like problematic spec writing. What makes PUT or POST so special 
in comparison to other methods? Maybe that they are the only methods in 
RFC2616 that carry request entity bodies? In which case the statement 
should be rephrased accordingly...

Best regards, Julian

---

From: Henrik Nordstrom <[email-masked]>
Date: Tue, 31 Jul 2007 20:39:24 +0200

> that meaning does not apply to PUT or POST.

Not sure.

Personally I would rather see PUT be allowed to reject messages with an
mismatch in Content-Location. The result of such operation is not likely
to be what was intended..

> should be rephrased accordingly...

Probably.

Suggestion:

Drop "PUT or POST " from that sentence, making it apply in general to
any kind of request. Which I guess is also what all servers do...

Regards
Henrik

---

From: Julian Reschke <[email-masked]>
Date: Tue, 31 Jul 2007 20:48:24 +0200

> to be what was intended..

Can you define "mismatch" here? When a client says "here's another 
Content location for the entity I'm sending", how can the server dtect a 
mismatch? (well, except for fetching the entity and comparing?)

> any kind of request. Which I guess is also what all servers do...

That would work for me.

Best regards, Julian

---

From: Henrik Nordstrom <[email-masked]>
Date: Tue, 31 Jul 2007 21:04:46 +0200

> mismatch? (well, except for fetching the entity and comparing?)

For a server doing raw PUT:

If Content-Location differs from the Request-URI, or different from the
intended store location when the Request-URI is a negotiated resource.

For a server processing the PUT entity and not storing the
Content-Location:

If the entity can not be processed in such manner that any references in
it makes sense at it's stored location, compared to the
Content-Location.

Regards
Henrik