完整HTTP动词对照表,包含特点、用法、对比和REST API设计最佳实践
零依赖 · 可离线使用🔍 筛选方法
📊 方法对比表
| 特性 | GET | POST | PUT | PATCH | DELETE |
|---|---|---|---|---|---|
| 幂等性 | ✅ | ❌ | ✅ | ❌ | ✅ |
| 安全性 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 可缓存 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 请求体 | 可选 | 必须有 | 必须有 | 必须有 | 可选 |
| 语义 | 获取 | 创建 | 全量更新 | 部分更新 | 删除 |
| RFC | 9110 | 9110 | 9110 | 5789 | 9110 |
❓ 常见问题
GET和POST有什么区别?
GET获取资源,参数在URL中,可缓存;POST创建资源,参数在请求体中,更安全无长度限制。
PUT和PATCH有什么区别?
PUT是全量替换需发送完整资源;PATCH是部分更新只发修改字段。PUT幂等,PATCH不一定幂等。
什么是幂等性?
幂等性指同一请求执行一次和多次效果相同。GET、PUT、DELETE是幂等的,POST不一定是。
什么时候用DELETE?
DELETE用于删除资源。REST API中DELETE /users/123删除ID为123的用户,是幂等的。
OPTIONS方法有什么用?
OPTIONS获取资源支持的方法,浏览器跨域请求时自动发送OPTIONS预检请求。
HEAD和GET有什么区别?
HEAD与GET相同但只返回响应头不返回响应体,用于检查资源是否存在而不下载内容。