基本了解如何使用GET,POST等HTTP方法

时间:2017-08-09 08:16:57

标签: rest http post web get

我正在考虑理解HTTP动词的基本用法GET,POST等...... 我读过这些文章,但对我来说还不是很清楚:

In a RESTful application, how do we differentiate between an "action" and an HTTP verb (GET, POST, PUT, DELETE)?

Why use HTTP verbs?

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)我只是不明白为什么要为限定远程方法调用实现这些动词。 我读了很多次,这是因为这些是安全的方法,但为什么这些方法安全?

1 个答案:

答案 0 :(得分:1)

  

为什么不通过URL调用方法(如server.domain / methods / addnewproduct),服务器端将决定该怎么办?

网址标识的内容。 HTTP METHOD描述了您希望如何与之交互。

http://example.com/HowToTellForAChild可以代表你。

有人可能想获取有关您的信息,或者他们可能希望在服务器上提供有关您的新信息。

他们仍在与同一实体互动,但方式不同。

http://example.com/HowToTellForAChild/GET会将识别和交互类型混合成一件事。充其量只是令人困惑。

  

我读了很多次,这是因为这些是安全的方法,但为什么这些方法安全?

请参阅the specification

  

应该考虑这些方法"安全"。      这允许用户代理表示其他方法,例如POST,PUT      和DELETE,以一种特殊的方式,使用户了解      事实上,正在要求采取可能不安全的行动。

一个实际例子:

假设您正在通过互联网订购一个娃娃屋。您提交表格。它会触发POST请求。

如果您然后按“刷新”按钮,浏览器会识别您刚刚发出POST请求并询问您是否确定要再次发出请求。

这会阻止您偶然订购第二个娃娃屋。

(虽然见the PRG pattern)。