* WGs marked with an * asterisk has had at least one new draft made available during the last 5 days

Ticket #21 (closed design: fixed)

Opened 7 years ago

Last modified 7 years ago

PUT side effects

Reported by: mnot@pobox.com Owned by:
Priority: Milestone: 02
Component: p2-semantics Severity:
Keywords: Cc:
Origin: http://www.w3.org/mid/14CD0D0B-6876-4E91-BF34-2BD392D3C162@yahoo-inc.com

Description

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

Change History

comment:1 Changed 7 years ago by mnot@pobox.com

Proposal:

"If a new resource is created at the Request-URI, the origin server MUST inform the user agent via the 201 (Created) response."

comment:2 Changed 7 years ago by mnot@pobox.com

  • version set to d00
  • Component set to semantics
  • Milestone set to unassigned

comment:3 Changed 7 years ago by mnot@pobox.com

  • Milestone changed from unassigned to 02

Proposal accepted.

comment:4 Changed 7 years ago by julian.reschke@gmx.de

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in [180]:

Resolve #21: clarify that 201 is only required when a new resource is being created at the Request-URI (closes #21)

Note: See TracTickets for help on using tickets.