4.5. 使用 HTTP Method
4.5. 使用 HTTP Method (Using HTTP Methods)
使用 HTTP 的 application MUST 符合 [HTTP] 中定义的所用 method 语义. 它们 MAY 定义新 method, 但如果这样做, MUST 按 [HTTP] Section 16.1 中的过程注册这些 method.
新 method 很少见; 只有当现有 method 的语义都无法满足需求时才有必要. 通常, 为 request body 定义新的 Content-Type, 和/或在 response 中定义 Link relation, 就足以消除语义歧义.
例如, 如果 application 想定义一个用于 "relocate" resource 的 operation, 定义新的 RELOCATE method 并不合适, 因为 PUT 已可用于改变 resource state (通过提供包含更新后 location 的新 representation).
规定 method 用法时, 重要的是考虑它们具有的各种属性, 例如 safety, idempotence 和 cacheability.
application SHOULD 尽可能使用现有 HTTP method. 特别是:
-
GET SHOULD 用于 safe 且 cacheable 的 operation (按 [HTTP] Sections 9.2.1 和 15.4).
-
支持 GET 的地方 SHOULD 支持 HEAD.
-
POST SHOULD 用于既非 safe 也非 idempotent 的 operation.
-
PUT SHOULD 用于在所提供 URL 下存储 enclosed representation, 替换任何现有 representation 的 operation.
-
DELETE SHOULD 用于移除由 URL 标识的 resource 的 operation.
使用 GET 和 OPTIONS 时的其他考虑见 Section 4.5.1 和 Section 4.5.2.