百科解釋
目錄·宗旨·要點(diǎn)及標(biāo)準(zhǔn)·實(shí)現(xiàn)舉例·REST的優(yōu)點(diǎn) 表象化狀態(tài)轉(zhuǎn)變(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構(gòu)風(fēng)格。 目前在三種主流的Web服務(wù)實(shí)現(xiàn)方案中,因?yàn)镽EST模式的Web服務(wù)與復(fù)雜的SOAP和XML-RPC對比來講明顯的更加簡潔,越來越多的web服務(wù)開始采用REST風(fēng)格設(shè)計(jì)和實(shí)現(xiàn)。例如,Amazon.com提供接近REST風(fēng)格的Web服務(wù)進(jìn)行圖書查找;雅虎提供的Web服務(wù)也是REST風(fēng)格的。 宗旨 REST 從資源的角度來觀察整個(gè)網(wǎng)絡(luò),分布在各處的資源由URI確定,而客戶端的應(yīng)用通過URI來獲取資源的表形。獲得這些表形致使這些應(yīng)用程序轉(zhuǎn)變了其狀態(tài)。隨著不斷獲取資源的表形,客戶端應(yīng)用不斷地在轉(zhuǎn)變著其狀態(tài),所謂表形化的狀態(tài)轉(zhuǎn)變(Representational State Transfer)。 這一觀點(diǎn)不是憑空臆造,而是通過觀察當(dāng)前web互聯(lián)網(wǎng)的運(yùn)作方式而抽象出來的。Roy Fielding 認(rèn)為, 要點(diǎn)及標(biāo)準(zhǔn) 需要注意的是,REST是一種設(shè)計(jì)風(fēng)格而不是一個(gè)標(biāo)準(zhǔn)。REST通;谑褂肏TTP,URI,和XML以及HTML這些現(xiàn)有的廣泛流行的協(xié)議和標(biāo)準(zhǔn)。 資源是由URI來指定。 對資源的操作包括獲取、創(chuàng)建、修改和刪除資源,這些操作正好對應(yīng)HTTP協(xié)議提供的GET、POST、PUT和DELETE方法。 通過操作資源的表形來操作資源。 資源的表現(xiàn)形式則是XML或者HTML,取決于是讀者是機(jī)器還是人,消費(fèi)web服務(wù)的客戶軟件還是web瀏覽器。當(dāng)然也可以是任何其他的格式。 REST的要求 客戶端和服務(wù)器結(jié)構(gòu) 連接協(xié)議具有無狀態(tài)性 能夠利用Cache機(jī)制增進(jìn)性能 層次化的系統(tǒng) Code On Demand - Javas cript 關(guān)于狀態(tài) 應(yīng)該注意區(qū)別應(yīng)用的狀態(tài)和連接協(xié)議的狀態(tài)。REST對于連接的無狀態(tài)性實(shí)際上要求每次經(jīng)過無狀態(tài)的連接協(xié)議傳送的信息必須包含應(yīng)用中所有的狀態(tài)信息。 實(shí)現(xiàn)舉例 例如,一個(gè)簡單的網(wǎng)絡(luò)商店應(yīng)用, 列舉所有商品, GET http://www.store.com/products 具體某一件商品, GET http://www.store.com/product/12345 下單購買, POST http://www.store.com/order, <purchase-order> <item> ... </item> </purchase-order> REST的優(yōu)點(diǎn) 可以利用緩存Cache來提高響應(yīng)速度 通訊本身的無狀態(tài)性可以讓不同的服務(wù)器的處理一系列請求中的不同請求,提高服務(wù)器的擴(kuò)展性 瀏覽器即可作為客戶端,簡化軟件需求 相對與其他疊加在HTTP協(xié)議之上的機(jī)制,REST的軟件依賴性更小 不需要額外的資源發(fā)現(xiàn)機(jī)制 在軟件技術(shù)演進(jìn)中的長期的兼容性更好
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助