有多少个 HTTP 动词?

问题描述 投票:0回答:2

我数了一下 9 HTTP 请求方法(又名动词):

GET
HEAD
POST
PUT
DELETE
CONNECT
OPTIONS
TRACE
PATCH

以上内容来自:https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods

是这样吗?这会改变吗?

http methods request protocols
2个回答
53
投票

注册表

HTTP 1.1 规范定义了超文本传输协议 (HTTP) 方法注册表。截至 2017 年 1 月,显示 39 条条目:

  • ACL
  • 基线控制
  • 绑定
  • 签到
  • 结账
  • 连接
  • 复制
  • 删除
  • 获取
  • 标签
  • 链接
  • 锁定
  • 合并
  • MK活动
  • MK日历
  • MKCOL
  • MKREDIRECTREF
  • MK工作空间
  • 移动
  • 选项
  • 订购补丁
  • 补丁
  • 发帖
  • PRI
  • PROPFIND
  • 道具补丁
  • 放置
  • 重新绑定
  • 报告
  • 搜索
  • 追踪
  • 解除绑定
  • 取消结账
  • 取消链接
  • 解锁
  • 更新
  • 更新重定向引用
  • 版本控制

HTTP 1.0

HTTP 1.0 定义了三种方法(“动词”):

  • GET
    …检索任何信息…由Request-URI标识…
  • POST
    …请求目标服务器接受 请求中包含的实体作为该实体的新下属 由请求行中的请求 URI 标识的资源...将消息发布到公告板、新闻组、邮件列表...提供数据块...通过附加操作扩展数据库...
  • HEAD
    …与 GET 相同,但服务器不得 在响应中返回消息正文...用于获取有关请求隐含的实体的元信息,而无需传输实体正文本身...

HTTP 1.1

HTTP 1.1 在 RFC 2068 中正式定义。该规范添加了另外五个方法。

  • 选项
    ...有关信息的请求 请求/响应链上可用的通信选项...确定与资源相关的选项和/或要求, 或服务器的功能,而不暗示资源操作 或启动资源检索
  • PUT
    …请求将所包含的实体存储在 提供的请求 URI。如果……已经 现有资源,封闭的实体应该被视为 驻留在原始服务器上的版本的修改版本......
  • DELETE
    …删除资源 由请求 URI 标识...
  • TRACE
    …循环- 请求消息后面…
  • CONNECT
    ...与可以动态切换为隧道的代理一起使用(例如 SSL 隧道...

HTTP 扩展

其他协议扩展 HTTP 来定义其他方法/动词。

  • 补丁
  • 对资源应用部分修改
  • RFC 5789
  • 定义
  • WebDAV指定了另外七种方法:
    • PROPFIND
    • 道具补丁
    • MKCOL
    • 复制
    • 移动
    • 锁定
    • 解锁

HTTP/2

HTTP/2RFC 7540 中定义。 第 3.5 节定义了一个

PRI
方法。

  • PRI
    在 HTTP/2 中,每个端点都需要发送连接序言作为所使用协议的最终确认,并建立 HTTP/2 连接的初始设置。 …连接序言以字符串“PRI * HTTP/2.0 SM ”)……

预测

这会改变吗?

不太可能。

鉴于 Web RPCSOAP 的广泛使用,以及现在日益流行的 RESTful 服务为现有的基本动词带来了新的生命,几乎不需要在 HTTP 级别设计新的动词。当人们需要自己的特定领域的有意义的动词时,他们可以嵌入到通过 HTTP 传递的消息中。

我预计短期内我们不会看到更多的 HTTP 方法变得流行。

2022 年更新:
QUERY

提出了一个新动词,但似乎已经死了

QUERY
。请参阅 IETF 的 HTTP 查询方法


3
投票

查看规格:

“本规范范围之外的其他方法已标准化,可在 HTTP 中使用。所有此类方法均应在 IANA 维护的“超文本传输协议 (HTTP) 方法注册表”中注册,如第 8.1 节中所定义。” -- https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.4.1.p.7>

IANA 注册表 还包含更多内容。

© www.soinside.com 2019 - 2024. All rights reserved.