在RESTful应用程序中,除了常见的GET和POST方法外,HTTP协议还定义了其他几种请求方法,用于不同的操作场景。以下是完整的HTTP方法及其应用场景:
HTTP/1.1规范定义了以下方法:
现代浏览器(Chrome/Firefox/Edge等)的XMLHttpRequest和Fetch API原生支持以下方法:
// PUT请求
fetch('/api/resource/123', {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ title: 'Updated Title' })
})
// DELETE请求
fetch('/api/resource/123', {
method: 'DELETE'
})
// PATCH请求
fetch('/api/resource/123', {
method: 'PATCH',
body: JSON.stringify({ partialUpdate: true })
})
虽然HTML表单原生只支持GET/POST,但可以通过隐藏字段模拟:
<form method="POST" action="/api/resource/123">
<input type="hidden" name="_method" value="PUT">
<!-- 其他表单字段 -->
</form>
后端需要解析_method
参数进行方法重写。
| 方法 | 幂等性 | 安全性 | 典型应用场景 | |---------|--------|--------|------------------------------| | GET | 是 | 是 | 获取资源列表或详情 | | POST | 否 | 否 | 创建新资源/触发处理动作 | | PUT | 是 | 否 | 完整替换现有资源 | | PATCH | 否 | 否 | 部分更新资源字段 | | DELETE | 是 | 否 | 删除指定资源 | | HEAD | 是 | 是 | 检查资源是否存在/获取元数据 |
通过合理使用这些HTTP方法,可以构建符合REST规范的Web API接口。实际开发中应根据操作语义选择最合适的方法。
没有搜到相关的文章