很难找到不改变服务器状态的请求方法的信息。
PUT
PATCH
POST
GET
我的假设是GET
仅是因为它不会向服务器引入任何新信息。
答案 0 :(得分:0)
这是一个约定,不是强制性规则。在设计REST接口时,人们通常使用GET进行不更改基础资源状态的操作,而使用PUT / PATCH / POST / DELETE进行操作。就是说,这不过是一个约定;我已经看到主要供应商的应用违反了它。按照惯例,没有人严格遵守,基础架构不会因破坏它而受到惩罚。
此外,这仅适用于REST风格的接口。例如,在SOAP协议中,所有内容都是通过POST实现的。
答案 1 :(得分:0)
正确执行安全语义是服务器上应用程序的责任,Web服务器本身(为Apache,Nginx或IIS)不能单独执行。特别是,应用程序不应允许 GET 请求更改其状态。
对安全方法的调用,不更改服务器的状态:
GET /pageX.html HTTP/1.1
对非安全方法的调用,它可能会更改服务器的状态:
POST /pageX.html HTTP/1.1
对幂等但不安全的方法的调用:
DELETE /idX/delete HTTP/1.1
GET 是正确的选择。
答案 2 :(得分:0)
IANA 有一个 list of standard HTTP Methods。 “安全”的方法不应改变服务器状态。不“安全”的方法可能。