Restful Web Service - Http應用層的協議

Http在這裏是作爲一個應用層的協議存在的。理解應用層協議至關重要,因爲在很多情況下,我們把Http作爲一個傳輸協議在使用。SOAP中Http就是作爲傳輸協議使用的。

  • GETPOSTPUT, 還有 DELETE 是定義在資源上的操作。有了這些操作,我們無須在定義什麼getXXX, createXXX.....

  • 服務端跟客戶對基於Http的交互對參與其中的各種庫,服務器,代理,緩存以及其他工具都具有可見性。這裏所說的可見性是Http協議的至關重用的特性。

    可見性的協議可以產生如下的特徵:

        緩存

         當迴應(respones)相關的資源改變時,緩存的相關回應會自動失效。

        樂觀的併發控制

         當併發寫發生時,基於過時的資源的寫請求將會被阻止。

       內容協商

         對資源,可以選擇不同的表現形式。

        安全性跟冪等性

         某系Http操作可以在資源上反覆操作。

    如果協議是不可見性的,不確定存在以上特徵。


    爲了確保Http的可見性,Http憑藉如下手段達成目標:


    • 無狀態的交互。Http不需要通過前面的請求或迴應來確定當前請求或迴應的狀態。

    • 使用同一的接口方法:OPTIONS, HEAD, GET, PUT, POST, DELETE, TRACE

    • 使用MIME-like的信封格式來定義不同的資源表示

    • 使用正確的狀態碼來標示請求結果


安全(Safety) 跟 冪等 (idempotency) HTTP 方法

     安全 - 不會有副作用(side effect)

     冪等- 客戶端的重複請求產生的影響是相同的

   Method              Safty           Idempotency

    Get                 Yes              Yes

    Head                Yes              Yes

    Options             Yes              Yes

    Put                 No               Yes

    Delete              No               Yes

    Post                No               No







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章