http服務器交互get,put,post,delete等說明

簡單的說


就是整套CRUD(增刪改查)操作,C對應POST,R對應GET,U對應PUT,D對應DELETE。

在實際的做的時候,很多人卻沒有按照HTTP規範去做,導致這個問題的原因有很多,比如說:

1.很多人貪方便,更新資源時用了GET,因爲用POST必須要到FORM(表單),這樣會麻煩一點。

2.對資源的增,刪,改,查操作,其實都可以通過GET/POST完成,不需要用到PUT和DELETE。

3.另外一個是,早期的但是Web MVC框架設計者們並沒有有意識地將URL當作抽象的資源來看待和設計 。還有一個較爲嚴重的問題是傳統的Web MVC框架基本上都只支持GET和POST兩種HTTP方法,而不支持PUT和DELETE方法。


進一步解說


GET操作是安全的。所謂安全是指不管進行多少次操作,資源的狀態都不會改變。比如我用GET瀏覽文章,不管瀏覽多少次,那篇文章還在那,沒有變化。當然,你可能說每瀏覽一次文章,文章的瀏覽數就加一,這不也改變了資源的狀態麼?這並不矛盾,因爲這個改變不是GET操作引起的,而是用戶自己設定的服務端邏輯造成的。

PUT,DELETE操作是冪等的。所謂冪等是指不管進行多少次操作,結果都一樣。比如我用PUT修改一篇文章,然後在做同樣的操作,每次操作後的結果並沒有不同,DELETE也是一樣。

POST操作既不是安全的,也不是冪等的,比如常見的POST重複加載問題:當我們多次發出同樣的POST請求後,其結果是創建出了若干的資源。

安全和冪等的意義在於:當操作沒有達到預期的目標時,我們可以不停的重試,而不會對資源產生副作用。從這個意義上說,POST操作往往是有害的,但很多時候我們還是不得不使用它。



更多的參考

HTTP POST GET 本質區別詳解: http://blog.csdn.net/gideal_wang/article/details/4316691


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