http - 有多少个 HTTP 动词?

标签 http methods request protocols

我数 9 HTTP request methods (又名动词):

GET
HEAD
POST
PUT
DELETE
CONNECT
OPTIONS
TRACE
PATCH

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

是吗?这会改变吗?

最佳答案

注册表

HTTP 1.1 规范定义了一个 Hypertext Transfer Protocol (HTTP) Method Registry .截至 2017-01,显示 39 个条目:

  • ACL
  • 基线控制
  • 绑定(bind)
  • 签到
  • 结账
  • 连接
  • 复制
  • 删除
  • 获取
  • 负责人
  • 标签
  • 链接
  • 锁定
  • 合并
  • 事件能力
  • MK日历
  • MKCOL
  • MKREDIRECTREF
  • MK 工作空间
  • 移动
  • 选项
  • 订单补丁
  • 补丁
  • 发布
  • 优先级
  • PROPFIND
  • PROPPATCH
  • 放置
  • 重新绑定(bind)
  • 报告
  • 搜索
  • 追踪
  • 解除绑定(bind)
  • 结帐
  • 取消链接
  • 解锁
  • 更新
  • 更新目录
  • 版本控制

HTTP 1.0

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

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

HTTP 1.1

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

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

HTTP 扩展

其他协议(protocol)扩展 HTTP 以定义其他方法/动词。

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

HTTP/2

HTTP/2RFC 7540 中定义. Section 3.5定义一个 PRI 方法。

  • PRI
    在 HTTP/2 中,每个端点都需要发送一个连接前言作为对所使用协议(protocol)的最终确认,并为 HTTP/2 连接建立初始设置. …连接前言以字符串“PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n") ...

预测

will this ever change?

不太可能。

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

我预计我们不会很快看到更多的 HTTP 方法变得流行。

关于http - 有多少个 HTTP 动词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41411152/

相关文章:

node.js - Nodejs 应用程序如何向我的另一个 https 服务器请求?

http - 在负载测试下,Node.js Http.request变慢了。难道我做错了什么?

java - 如何使用 Java 中的函数和方法循环读取字符串

python - 检查很多 URL 看看是否返回 200。最聪明的方法是什么?

c# - 解析来自服务器的 UTF8 JSON 响应

Python (tastypie) - POST 请求错误,返回 "error"dict

java - 主要通过不同的 void 方法更改人名

java - 如何找到在给定类中实现其方法的 Java 接口(interface)?

request - 如何使用postman创建302 GET请求?

macos - 完全重置 CouchDB