HTTP请求方法表

方法 分类 幂等 安全 说明

cURL 命令生成器

填写下面的参数,即时生成可直接粘贴到终端执行的 cURL 命令。所有内容都在浏览器本地计算,不会上传任何数据。

生成的命令

            
收录 57 个 HTTP 请求方法,标注幂等与安全属性,涵盖核心方法、WebDAV、版本控制、缓存代理等类别,并内置 cURL 命令生成器。

HTTP 请求方法是什么

请求方法是 HTTP 协议中最基础的概念之一:它告诉服务器「我想对这个资源做什么」。RFC 9110 定义了 9 个核心方法,此外 WebDAV、版本控制、缓存代理、设备发现等扩展协议又各自定义了大量专用方法。

本表收录了 57 个请求方法*,按来源分成 7 类,并为每个方法标注了两个关键属性:**是否幂等**与*是否安全。


幂等与安全:两个容易混淆的概念

这两个词是理解 HTTP 方法设计的钥匙,很多人分不清,但它们的含义其实非常明确。

安全(Safe)* 指这个方法*不会修改服务器上的资源状态。GET、HEAD、OPTIONS、TRACE 是安全的——反复调用它们,服务器上的数据不会因此改变。

幂等(Idempotent)* 指这个方法*执行一次和执行多次的效果相同。注意它不要求「不修改」,只要求「修改的结果一致」。

方法安全幂等说明
GET是是只读取,不修改
HEAD是是只读响应头
OPTIONS是是查询支持的方法
PUT否是整体替换,重复执行结果相同
DELETE否是删除后资源已不存在,再删仍是这个结果
POST否否重复提交会创建多份资源
PATCH否否补丁语义决定,标准上不保证幂等

为什么这个区分很重要? 因为浏览器、爬虫和中间代理会依据它做决策。安全的 GET 可以被预取、被缓存、被重试;而 POST 一旦网络超时,客户端不能盲目重试,否则可能重复下单、重复扣款。


那些你可能没听过的方法

WebDAV 系列(PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK、UNLOCK 等)用于远程文件管理,网盘同步、在线 Office 协作、macOS Finder 挂载服务器都依赖它们。用 curl -X PROPFIND 就能直接列出支持 WebDAV 的目录。

DeltaV 系列(REPORT、CHECKOUT、CHECKIN、MERGE 等)是 WebDAV 的版本控制扩展,把「检出—修改—检入」的模型搬到了 HTTP 上。

缓存清理方法(PURGE、BAN、REFRESH)是 Varnish、Squid 等反向代理的私有扩展。PURGE 按 URL 精确清理,BAN 按条件批量失效,是运维刷新 CDN 缓存的常用手段。

设备发现方法(M-SEARCH、NOTIFY、SUBSCRIBE、UNSUBSCRIBE)来自 SSDP 与 UPnP,DLNA 投屏、智能家居设备发现都走这套协议。


一个实用技巧:用 OPTIONS 探测接口

不确定某个接口支持哪些方法时,直接发一个 OPTIONS 请求即可:

OPTIONS /api/users HTTP/1.1
Host: example.com

服务器会在 Allow 响应头里列出全部支持的方法:

Allow: GET, POST, PUT, DELETE, OPTIONS

这也是 CORS 预检请求的工作方式——浏览器对跨域的复杂请求会先自动发一个 OPTIONS,确认服务端允许该来源与该方法后,才发送真实请求。


使用方式

  • 查表:搜索方法名、分类或说明,例如 PUT、WebDAV、幂等;
  • 筛选:点击分类标签只看某一类方法;
  • 复制:点击方法名徽章即可复制;
  • 生成命令:在下方「cURL 命令生成器」中选好方法、填写地址与请求头,即可得到可直接执行的命令行,支持显示响应头、跟随重定向、跳过证书校验等常用选项。

提示:生成器会识别 GET、HEAD、OPTIONS、TRACE 这几个不允许携带请求体的方法,自动忽略你填写的请求体,避免生成无效命令。

常见问题 FAQ

页面上的 cURL 生成器怎么用?

选择请求方法、填写地址与请求头,即可得到可直接粘贴执行的命令行。它会自动识别 GET、HEAD、OPTIONS、TRACE 不允许携带请求体并忽略你填写的内容。

CONNECT 方法的作用是什么?

要求代理建立到目标服务器的隧道,用于 HTTPS 通过代理转发。成功返回 2xx 后,该连接变为纯字节隧道。

TRACE 方法为什么通常被禁用?

TRACE 会回显服务器收到的请求,可能被利用实施 XST(跨站追踪)攻击,因此绝大多数生产服务器默认关闭。

PURGE 和 BAN 是什么方法?

它们是 Varnish 等反向代理的私有缓存清理方法。PURGE 按 URL 精确清除,BAN 按正则等条件批量失效缓存对象。

WebDAV 方法用在什么场景?

网盘同步、在线 Office 协作、macOS Finder 挂载服务器等远程文件管理场景,典型方法有 PROPFIND、MKCOL、COPY、MOVE、LOCK 等。

CORS 预检请求是怎么回事?

浏览器对跨域的复杂请求会先自动发送一个 OPTIONS 请求,确认服务端允许该来源与方法后,才发送真实请求。

OPTIONS 方法有什么用?

查询目标资源支持的通信选项,响应头 Allow 会列出全部可用方法。浏览器的 CORS 预检请求用的就是 OPTIONS。

POST 为什么不能随便重试?

POST 不幂等,网络超时后重试可能创建多份资源,造成重复下单、重复扣款。需要重试时应配合幂等键或改用 PUT。

PUT 和 PATCH 有什么不同?

PUT 用请求体整体替换资源,是幂等的;PATCH 描述「如何修改」做局部更新,标准上不保证幂等。

安全方法和幂等方法有什么区别?

安全方法不修改服务器资源状态(如 GET、HEAD、OPTIONS),幂等方法则允许修改但结果一致(如 PUT、DELETE)。安全方法一定是幂等的,反之不成立。

什么是幂等方法?

幂等指执行一次和执行多次的效果相同。注意它不要求「不修改资源」,只要求修改的结果一致,例如 DELETE 多次执行后资源都是不存在状态。

HTTP 一共有多少个请求方法?

RFC 9110 定义了 9 个核心方法,加上 WebDAV、版本控制、缓存代理、设备发现等扩展协议定义的方法,实际使用中常见的有 50 多个,本表收录了 57 个。