Link: http://trac.tools.ietf.org/wg/httpbis/trac/ticket/21
Origin: http://www.w3.org/mid/14CD0D0B-6876-4E91-BF34-2BD392D3C162@yahoo-inc.com
Component: p2-semantics
2616 specifically allows PUT to have side effects;
A single resource MAY be identified by many different URIs. For example, an article might have a URI for identifying "the current version" which is separate from the URI identifying each particular version. In this case, a PUT request on a general URI might result in several other URIs being defined by the origin server.
HTTP/1.1 does not define how a PUT method affects the state of an origin server.
and it also says (in the context of PUT)
If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
So, if I PUT something to /foo, and it has the side effect if creating /foo;2006-04-03, is the response required to be a 201 Created?
I.e., read literally, the above requirement requires a 201 Created when PUT results in *any* resource being created -- even as a side effect.
This is IMO unnecessarily constraining, and should be relaxed; e.g., changed to something like
Proposal:
"If a new resource is created at the Request-URI, the origin server MUST inform the user agent via the 201 (Created) response."
Proposal accepted.
Fixed in [180]:
Resolve #21: clarify that 201 is only required when a new resource is being created at the Request-URI (closes #21)