httpwg / httpbis-issues

1 stars 1 forks source link

requirement on implementing methods according to their semantics #545

Closed mnot closed 3 years ago

mnot commented 10 years ago

Part 2, section 4:

"All general-purpose servers MUST support the methods GET and HEAD. All other methods are OPTIONAL; when implemented, a server MUST implement the above methods according to the semantics defined for them in Section 4.3."

This ignores methods not defined here.

Reported by julian.reschke@gmx.de, migrated from https://trac.ietf.org/trac/httpbis/ticket/545

mnot commented 10 years ago

julian.reschke@gmx.de commented:

Proposal:

All general-purpose servers MUST support the methods GET and HEAD. All other methods are OPTIONAL; when implemented, a server MUST implement the above methods according to the semantics defined in their relevant specifications (as listed in the HTTP Method Registry maintained by IANA, described in Section 8.1.)

(and then tune the subsequent sentence not to repeat the 8.1 reference)

mnot commented 10 years ago

Proposed patch

mnot commented 10 years ago

fielding@gbiv.com commented:

The spec is correct as is. It is not our responsibility to require semantics of unknown or future methods. For example, a method might be defined by a few servers, implemented widely, proposed for standardization, and then specified by many drafts over multiple years. An HTTP server does not become non-conformant to HTTP as those definitions change -- they just don't conform to whatever spec (not HTTP/1.1) defines the new method.

mnot commented 10 years ago

julian.reschke@gmx.de commented:

True, but what I want to avoid is that implementers think that they can implement PATCH in their origin server any way they want. What's the correct spec text to ensure that?

mnot commented 10 years ago

fielding@gbiv.com commented:

The correct spec text would appear in the spec of that method, not the spec of HTTP/1.1.

For example, consider experimental extensions to HTTP that have been deliberately published on the Experimental track instead of the standards track. Your suggested text would imply that those experiments have the same weight as the full standard.

I think what you want is some factual statement that describes the purpose of the method registry. In other words, it could say something about why methods should be registered, preferably in 8.1.2.

mnot commented 10 years ago

fielding@gbiv.com commented:

Hmm, this is actually covered by p1 2.5 Conformance and Error Handling:

   A recipient MUST interpret a received protocol element according to
   the semantics defined for it by this specification, including
   extensions to this specification, unless the recipient has determined
   (through experience or configuration) that the sender incorrectly
   implements what is implied by those semantics.

Perhaps we can just delete the last bit above:

All general-purpose servers MUST support the methods GET and HEAD. All other methods are OPTIONAL. ; when implemented, a server MUST implement the above methods according to the semantics defined for them in Section 4.3.

mnot commented 10 years ago

julian.reschke@gmx.de commented:

Replying to [comment:5 fielding@…]:

Hmm, this is actually covered by p1 2.5 Conformance and Error Handling:

   A recipient MUST interpret a received protocol element according to
   the semantics defined for it by this specification, including
   extensions to this specification, unless the recipient has determined
   (through experience or configuration) that the sender incorrectly
   implements what is implied by those semantics.

Perhaps we can just delete the last bit above:

All general-purpose servers MUST support the methods GET and HEAD. All other methods are OPTIONAL. ; when implemented, a server MUST implement the above methods according to the semantics defined for them in Section 4.3.

Sounds good to me.

mnot commented 10 years ago

julian.reschke@gmx.de commented:

From 2601:

Remove misleading extra requirement about method semantics (see #545)

mnot commented 10 years ago