HTTP 方法速查
HTTP 请求方法速查:GET/POST/PUT/PATCH/DELETE 等方法的用途、安全性与幂等性。
纯浏览器本地运行,数据不上传服务器
| 方法 | 用途 | 安全/幂等 | 典型场景 |
|---|---|---|---|
GET | 获取资源 | 安全幂等 | 浏览器地址栏、链接 |
POST | 创建资源/提交数据 | 非安全 | 表单提交、API 创建 |
PUT | 整体替换资源 | 幂等 | 更新整个资源 |
PATCH | 部分更新资源 | 非幂等 | 局部字段更新 |
DELETE | 删除资源 | 幂等 | 删除操作 |
HEAD | 仅获取响应头 | 安全幂等 | 检查资源存在性、缓存 |
OPTIONS | 查询支持的请求方法 | 安全 | CORS 预检 |
CONNECT | 建立隧道 | 非安全 | HTTPS 代理 |
TRACE | 回显请求 | 安全 | 诊断调试(常被禁用) |
PURGE | 清除缓存 | 幂等 | CDN 缓存清理 |
LOCK | 锁定资源 | 非安全 | WebDAV |
UNLOCK | 解锁资源 | 非安全 | WebDAV |
PROPFIND | 查询资源属性 | 安全 | WebDAV |
PROPPATCH | 修改资源属性 | 非安全 | WebDAV |
MKCOL | 创建集合 | 非安全 | WebDAV |
COPY | 复制资源 | 非安全 | WebDAV |
MOVE | 移动资源 | 非安全 | WebDAV |
使用说明
- 表格列出标准 HTTP 方法及扩展方法:用途、是否安全、是否幂等与典型场景。
- “安全”指不会改变服务器状态(GET/HEAD/OPTIONS);“幂等”指多次执行结果一致(PUT/DELETE)。
- 设计 REST API 时按语义选择方法,能获得更好的缓存与重试行为。
常见问题
PUT 和 PATCH 有什么区别?
PUT 是整体替换资源(客户端提交完整表示),幂等;PATCH 是部分更新(只提交要改的字段),不保证幂等。
浏览器只支持 GET/POST,怎么办?
HTML 表单只支持 GET 和 POST,但可在 POST 中携带 _method 字段由服务端解释为 PUT/DELETE,或直接用 fetch/XHR 发送任意方法。
OPTIONS 预检请求是什么?
跨域请求若触发 CORS 预检,浏览器会先发 OPTIONS 询问服务器允许哪些方法/头,服务器响应 Access-Control-Allow-* 头后才会发真实请求。