我正在考虑理解HTTP动词的基本用法GET,POST等...... 我读过这些文章,但对我来说还不是很清楚:
Use of HTTP RESTful methods GET/POST/etc. Are they superfluous?
我只是没有看到建议为方法调用添加限定符(我知道,GET,POST等...是限定符)。为什么不通过URL调用方法(如server.domain / methods / addnewproduct),服务器端将决定该怎么做?我知道何时使用GET,POST,UPDATE等...(CRUD程序bla-bla-bla)我只是不明白为什么要为限定远程方法调用实现这些动词。 我读了很多次,这是因为这些是安全的方法,但为什么这些方法安全?
答案 0 :(得分:1)
为什么不通过URL调用方法(如server.domain / methods / addnewproduct),服务器端将决定该怎么办?
网址标识的内容。 HTTP METHOD描述了您希望如何与之交互。
http://example.com/HowToTellForAChild
可以代表你。
有人可能想获取有关您的信息,或者他们可能希望在服务器上提供有关您的新信息。
他们仍在与同一实体互动,但方式不同。
http://example.com/HowToTellForAChild/GET
会将识别和交互类型混合成一件事。充其量只是令人困惑。
我读了很多次,这是因为这些是安全的方法,但为什么这些方法安全?
应该考虑这些方法"安全"。 这允许用户代理表示其他方法,例如POST,PUT 和DELETE,以一种特殊的方式,使用户了解 事实上,正在要求采取可能不安全的行动。
一个实际例子:
假设您正在通过互联网订购一个娃娃屋。您提交表格。它会触发POST请求。
如果您然后按“刷新”按钮,浏览器会识别您刚刚发出POST请求并询问您是否确定要再次发出请求。
这会阻止您偶然订购第二个娃娃屋。
(虽然见the PRG pattern)。