http请求的方法一共多少种

一、核心结论:两类场景下的 "数量"

HTTP 标准规范明确定义的方法:有9 种常用标准方法(HTTP/1.1 规范,RFC 7231),后续 HTTP/2、HTTP/3 均兼容这些核心方法,无新增核心标准方法;

广义上的 HTTP 方法:数量不固定(可认为是 "无限可扩展"),因为 HTTP 协议本身支持自定义请求方法。

二、HTTP/1.1 核心 9 种标准请求方法(常用 + 必备)

这 9 种是被标准化认可、具备明确语义、所有 HTTP 客户端 / 服务端都应兼容的方法,各自用途清晰:

方法名 核心用途 关键特性

GET 从服务器获取资源(如查询网页、图片) 安全、幂等、可缓存,请求体一般无意义(部分场景允许但不推荐)

POST 向服务器提交资源(如表单提交、创建数据) 不安全、非幂等,可携带大量数据,请求体必传有效载荷

PUT 向服务器更新 / 替换资源(全量更新) 不安全、幂等,若资源不存在则可能创建该资源

DELETE 从服务器删除指定资源 不安全、幂等

HEAD 仅获取资源的响应头信息(不返回响应体) 安全、幂等、可缓存,语义与 GET 一致,仅省略响应体

OPTIONS 探测服务器支持的 HTTP 方法 / 跨域配置(如 CORS 预检请求) 安全、幂等

CONNECT 建立与目标服务器的隧道连接(如 HTTPS 代理、WebSocket 握手) 不安全、非幂等

TRACE 回显服务器收到的请求,用于调试 / 诊断(验证请求传输是否完整) 安全、幂等,因安全风险(跨站追踪)通常被服务器禁用

PATCH 向服务器部分更新资源(无需全量替换,补充 PUT) 不安全、非幂等,RFC 5789 补充定义(归为标准方法)

三、扩展:HTTP 方法的 "可扩展性"(数量不固定)

HTTP 协议的设计具备灵活性,允许自定义非标准的请求方法,这也是广义上 HTTP 方法数量不固定的原因:

自定义规则:只要方法名符合 "大写英文字母、无空格、长度合理" 的格式,即可作为自定义 HTTP 方法(如COPY、MOVE、LOCK等,常见于 WebDAV 协议扩展);

适用场景:主要用于特定业务场景或专用协议(如 WebDAV 用于文件管理),但不具备通用性 ------ 多数通用 HTTP 客户端(如 Postman)、服务端框架(如 Spring Boot)对自定义方法的支持有限;

注意事项:自定义方法无统一标准化语义,不同系统间可能存在解读差异,仅适合内部封闭系统使用,不推荐在公开接口中采用。

总结

日常开发、面试答题中,核心关注9 种 HTTP/1.1 标准方法即可,其中 GET、POST、PUT、DELETE 是最常用的 "四大金刚";

广义上 HTTP 方法无固定数量,支持自定义扩展,仅适用于特定场景;

区分方法的 "安全 / 幂等" 特性,是正确使用 HTTP 方法的关键(如查询操作优先用 GET,创建操作优先用 POST)。