2017-08-09 62 views
0

我想了解HTTP動詞GET,POST等的基本使用... 我閱讀了這些文章,但它還不是很清楚:使用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

爲什麼不只是通過URL調用方法(如server.domain/methods/addnewproduct),服務器端將決定要做什麼?

該URL標識東西。 HTTP METHOD描述了你想如何與之交互。

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

有人可能想要獲取關於您的信息,或者他們可能想要在服務器上放置關於您的新信息。

它們仍然以相同的實體進行交互,但方式不同。

http://example.com/HowToTellForAChild/GET會混淆識別和交互類型爲一件事。充其量只是令人困惑。


,我讀了很多時間,這是因爲這些都是安全的方法,但爲什麼這些方法安全嗎?

the specification

這些方法應該被認爲是 「安全」。 這允許用戶代理以一種特殊的方式表示其他方法,例如POST,PUT 和DELETE,以便使用戶意識到正在請求可能不安全的操作的事實。

對於一個實際的例子:

說你是在互聯網上訂購娃娃的房子。你提交一份表格。它觸發一個POST請求。

如果您然後按下刷新按鈕,瀏覽器會認識到您只是發出POST請求,並詢問您是否確定要再次發出請求。

這會阻止您偶然訂購一個第二個娃娃屋。

(雖然見the PRG pattern)。

+0

坦克你的答案! :) – HowToTellForAChild