restful風格的webservice開發之概念準備篇

來源:互聯網
上載者:User

標籤:

理解restful:
什麼是rest,rest是Representational State Transfer的縮寫,翻譯過來就是“表現層狀態轉化”。這裡有點不準確,其實rest省略了主語
表現層指的是資源的表現層。在這裡所謂的資源指的是互連網上的一個實體,一個具體的資訊。比如作為互動的一個文本,一段個人資訊,一張圖片等等。。。你可以用一個URI(統一資源定位器)指向它,每種資源對應一個特定的URI,要擷取這個資源,訪問它的URI就可以
,因此URI就成了每一個資源的地址或獨一無二的識別符。
那麼什麼是表現層?
資源作為一個實體可以有多種表現形式。比如一張文字,可以用txt表示,也可以用xml和json來表示,甚至可以用2進位流來表示。當我們用
URI這個定位器對資源進行互動的時候,資源需要以一種確定的的表現形式來互動這種表現形式就是表現層,資源的具體表現形式(即資源用什麼方式傳播),
應該在HTTP請求的頭資訊中用Accept和Content-Type欄位指定,這兩個欄位才是對"表現層"的描述。舉個栗子,當我要傳一個人的資訊的時候
我可以把這個人的資訊封裝成一個json然後通過uri傳給服務端。那麼這時候json就是個人資訊的表現層。
狀態轉化:
理解了上面的資源 和資源的表現層,再來理解這個定義就很好理解了。訪問一個網站,就代表了用戶端和伺服器的一個互動過程。在這個過程中,
勢必涉及到資料和狀態的變化,這個過程就是狀態轉化。舉個栗子,小明在某個網站進行了一次註冊。要把個人資訊通過類似xx/postUser的uri
來完成註冊,在這個過程中小明輸入的個人資訊(資源) 通過一種傳輸方式,比如json(資源的表現層)通過資源的定位器uri傳給了伺服器
伺服器解析json然後存入資料庫(這裡還是資源,只不過狀態變了,變成儲存在硬碟中的資料)。這個過程就是狀態轉化,很明顯可以看出
這種轉化是建立在表現層上的(這裡是json)。
用戶端用到的手段,只能是HTTP協議。具體來說,就是HTTP協議裡面,
四個表示操作方式的動詞:GET、POST、PUT、DELETE。它們分別對應四種基本操作:GET用來擷取資源,POST用來建立資源(也可以用於更新資源),
PUT用來更新資源,DELETE用來刪除資源。
總結一下:
1、uri表示一種資源(或者說對資源的操作?)
2、C/S之間的的互動是通過資源的表現層(也可以理解為傳輸方式)來傳遞的。
3、用戶端通過四個HTTP動詞,對伺服器端資源進行操作,實現"表現層狀態轉化"。
那麼restful和soap的區別是什麼,優缺點是什嗎?
這裡不在介紹soap網上一大堆的資料,只談兩者的優缺點。兩者最根本的區別就是soap協議是重量級的複雜的協議,而REST是一種輕量級
的web service架構風格其實現和操作比SOAP和XML-RPC更為簡潔,可以完全通過HTTP協議實現,還可以利用緩衝Cache來提高響應速度,
效能、效率和易用性上都優於SOAP協議。REST架構對資源的操作包括擷取、建立、修改和刪除資源的操作正好對應HTTP協議提供的GET、
POST、PUT和DELETE方法,這種針對網路應用的設計和開發方式,可以降低開發的複雜性,提高系統的延展性。
REST架構尤其適用於完全無狀態的CRUD(Create、Read、Update、Delete,建立、讀取、更新、刪除)操作。當然soap也有其獨到的一面
不做過多介紹和本文沒多大關係。
具體見http://blog.sina.com.cn/s/blog_493a845501012566.html

restful風格的webservice開發之概念準備篇

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.