仅使用 GET
和 POST
在 restful API 规范中:
- GET 用来获取
- POST 用来新增
- PUT 用来更新
- DELETE 用来删除
但在实际情况中,推荐仅使用 GET
/ POST
,减少复杂度。
为什么不推荐使用其他的方法,有以下理由:
- 浏览器支持有限
历史上,浏览器在 HTML 表单中对于 GET 和 POST 之外的 HTTP 方法的支持有限。尽管现代的 Web 框架和 AJAX 技术改善了这种情况,但仍然可能存在某些浏览器或 Web 服务器不完全支持 DELETE 和 PUT 的情况。
- 缓存和代理
一些 Web 代理和缓存机制可能无法正确处理 DELETE 和 PUT 等 HTTP 方法。这可能导致意外的行为,例如将缓存的 DELETE 请求视为 GET 请求。
- 幂等性
HTTP 规范建议某些方法,包括 GET、PUT 和 DELETE,应该是幂等的。如果执行一次操作的结果与重复执行的结果相同,那么该操作是幂等的。然而,并非所有实现都严格遵循这一原则,依赖它可能导致意外的行为。
- 安全性考虑
一些安全扫描器和防火墙可能无法正确处理非标准的 HTTP 方法。在某些情况下,这些方法可能会被阻止或受到怀疑。
- 跨源请求(CORS)
在发起跨源请求时,某些 HTTP 方法,包括 DELETE 和 PUT,可能触发预检请求。预检请求是浏览器发送的额外请求,用于检查实际请求是否安全。这可能会增加你的应用程序的复杂性,特别是如果你的服务器没有配置处理预检请求。