有多少HTTP动词?

Pur*_*ket 10 methods protocols http request

我计算了9个HTTP请求方法:

GET
HEAD
POST
PUT
DELETE
CONNECT
OPTIONS
TRACE
PATCH
Run Code Online (Sandbox Code Playgroud)

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

是吗?这会改变吗?

Bas*_*que 19

注册处

HTTP 1.1规范定义了超文本传输​​协议(HTTP)方法注册表.截至2017-01,显示39个条目:

  • ACL
  • 基线控制
  • BIND
  • 报到
  • 查看
  • CONNECT
  • 复制
  • 删除
  • 得到
  • 标签
  • 链接
  • 合并
  • MKACTIVITY
  • MKCALENDAR
  • MKCOL
  • MKREDIRECTREF
  • MKWORKSPACE
  • 移动
  • OPTIONS
  • ORDERPATCH
  • 补丁
  • POST
  • PRI
  • PROPFIND
  • PROPPATCH
  • REBIND
  • 报告
  • 搜索
  • 跟踪
  • UNBIND
  • 取消签
  • UNLINK
  • 开锁
  • UPDATE
  • UPDATEREDIRECTREF
  • 版本控制

HTTP 1.0

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

  • GET
    ...检索任何信息......由Request-URI识别......
  • POST
    ...请求目标服务器接受请求中包含的实体作为请求行中Request-URI标识的资源的新下属...向公告板,新闻组,邮件列表发送消息...提供块of data ...通过追加操作扩展数据库......
  • HEAD
    ...与GET相同,但服务器不得在响应中返回消息体...用于获取有关请求所隐含的实体的元信息而不转移实体主体本身...

HTTP 1.1

HTTP 1.1在RFC 2068中正式定义.该规范增加了五种方法.

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

HTTP扩展

其他协议扩展HTTP以定义其他方法/动词.

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

HTTP/2

HTTP/2RFC 7540中定义.第3.5节定义了一种PRI方法.

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

预测

这会改变吗?

不见得.

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

我希望我们不会看到更多的HTTP方法很快就会流行起来.

  • 感谢您提供注册表链接。但是HTTP 1.0/1.1的分发是错误的。RFC 1945 声明:`GET`、`HEAD`、`POST`、`PUT`、`DELETE`、`LINK` 和 `UNLINK` 对于 http 1.0 有效。 (2认同)