回答
Representational state transfer (REST)是一種軟件體系結構。正如Roy Fielding的論文所述,REST是一種「架構風格」,它基本上利用了Web的現有技術和協議。
RESTful通常用於指代實現這種體系結構的Web服務。
所以REST是架構和RESTful的一個形容詞? – 2014-05-19 21:07:43
@manei_cc - 基本上,是的。 – 2014-05-19 21:32:17
@manei_cc:雖然在實踐中您會發現名爲RESTful的服務不遵循REST體系結構,並且基本上類似於REST類,REST類等。因此,請始終注意,「RESTful服務」不一定是使用REST架構,但Justin Ethier寫道:_exploits Web_的現有技術和協議。 – Azder 2014-07-05 07:59:06
「休息」是一個建築範例。 「RESTful」描述使用該範例。
'建築師'是什麼?的網址?像'https:// translation.googleapis.com/language/translate/v2'這是REST風格嗎? – UnKnown 2017-07-07 16:48:15
REST體系結構需要很多特性。您不能僅僅通過展示URL來說明遵循REST原則的內容。 – SingleShot 2017-07-08 21:12:22
正如賈森在評論中所說,RESTful只是用作描述尊重REST約束的一個形容詞。
REST是軟件體系結構的分佈式軟件
符合REST約束條件的樣式爲「REST的」被提及。
今天非常用於構建作爲SOAP的替代方案的Web服務。
這裏有一些鏈接檢查
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
具象狀態傳輸(REST)是一種軟件體系結構的分佈式超媒體系統,如萬維網的樣式。代表性狀態轉移這一術語在他的博士論文中由Roy Fielding 1 [2]在2000年引入和定義。 Fielding是超文本傳輸協議(HTTP)規範版本1.0和1.1的主要作者之一。 符合REST約束條件被稱爲「RESTful」。 Source:Wikipedia
Web服務本質上是網站的內容被計算機程序使用,而不是人。 REST是一套體系結構原則,規定Web服務應該最大限度地利用HTTP和其他Web標準,以便程序獲得人們已經可以從Web上獲得的所有好東西。 REST常常與SOAP Web服務以及其他「遠程過程調用」面向的Web服務形成對照。
Stefan Tilkov在Parleys.com的REST上的演示文稿相當不錯,especially this one。
對於一本書,你不可能比理查森和魯比的Restful Web Services更好。
下有正確的回答所以一個普通的網站可以被認爲是一個REST應用程序? – 2016-04-29 23:14:58
@yoyo_fun:是的,一個普通的網站也可以用RESTful構建。在某種抽象層次上,服務器是否將HTML返回給人類,或者JSON(比如說)是否是程序並不重要。 – 2016-09-24 23:46:13
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
這是創建的REST風格的網絡應用理念的原件。參考REST維基百科文章。他還共同撰寫了HTTP RFC。
感謝您的答案。
- 使用HTTP方法明確: 由亞歷克斯·羅德里格斯,這表明一個RESTful Web服務有4個它們的基本特徵閱讀this article。
- 無國籍。
- 公開與目錄結構相似的URI。
- 傳輸XML,JavaScript對象表示法(JSON)或二者兼有。
它實際上有6個約束。 – IronBlossom 2014-09-28 12:09:43
@IronBlossom關心更新與缺少的兩個答案? – 2016-09-30 15:15:34
REST代表代表性狀態轉移。這意味着國家本身並沒有轉移,而僅僅是它的代表。最常見的例子是基於純HTML服務器的應用程序(無javascript)。瀏覽器對應用程序本身一無所知,但通過鏈接和資源,服務器能夠將應用程序的狀態傳輸到瀏覽器。如果按鈕通常會在常規Windows應用程序中更改狀態變量(例如頁面打開),那麼在瀏覽器中,您將有一個代表這種狀態更改的鏈接。
這個想法是使用超媒體。也許可以創建新的超媒體類型。可能我們可以用javascript/AJAX擴展瀏覽器並創建新的自定義超媒體類型。我們將有一個真正的REST應用程序。
這是我REST代表的簡短版本,問題是它很難實現。我個人說RESTful,當我想參考REST的原則時,但我知道我沒有真正實現REST的整個概念。我們並不真正說SOAP,因爲你使用SOAP或不使用SOAP。我認爲大多數人不會像它創建者Roy Fielding所設想的那樣進行REST,我們實際上實現了RESTful或REST架構。你可以看到他的dissertation,你會發現REST的縮寫,但不是RESTful這個詞。
基於REST的服務/建築VC RESTful服務/建築
爲了區分或比較這些2,你應該知道什麼是REST。 REST(代表性狀態傳輸)基本上是有一些原則發展的建築風格......
應該是無狀態的
它應該只使用URI
從服務器訪問所有資源
它沒有內置加密
它不具備會話
它使用一個且只有一個協議,該協議是HTTP
爲執行CRUD操作,就應該使用HTTP動詞如GET,POST,PUT和DELETE
它應該只在形式返回結果JSON或XML,原子,的OData等(輕量級的數據)的
REST基於服務遵循一些上述原則,而不是所有的,而RESTFUL意味着它遵循所有上述原則。它與基於對象的語言(它支持所有的OOPS概念,例如C++,C#)和麪向對象的語言(它支持一些OOP特性,如JavaScript,VB)的概念類似。示例是ASP Dot NET MVC 4是'基於REST'的,而Microsoft WEB API是'RESTFul'。 MVC僅支持上述REST原則中的一部分,而WEB API支持上述所有REST原則。
MVC只支持從REST API
我們可以訪問該資源使用URI
以下它支持HTTP動詞從服務器訪問資源
它可以以JSON,XML形式返回結果,即HTTPResponse。
但在WEB API的同時
我們可以使用會話
我們可以讓它有狀態
我們可以從返回的視頻或圖像主要違反REST原則的控制器動作方法
這就是爲什麼MVC是基於REST的,而WEB API支持所有上述原則並且是RESTFul。
我不明白爲什麼這已被低估,這個答案帶來了很多澄清信息的問題。 – Marcovecchio 2016-02-25 13:44:26
目前爲止最好的解答 – Limon 2016-10-07 14:04:08
這是最佳答案。 – 2016-11-08 16:09:41
基於REST的服務稱爲「RESTful服務」。
來源我靠張貼的:Dr.Dobbs Archive
有4個級別的理查德森成熟度模型中定義的API。這些定義爲:
級別0:任何系統的所有apis(SOAP或RPC屬於此類別)都有一個端點。等級0 apis也可以類似於「命令」。
等級1:一個ResourceUri描述的系統。這是一個定義了多個基於實體的URI的系統(而不是像0級系統那樣只有一個端點)。這些URI可以使用不同的http操作(POST,GET,PUT等)來針對該資源實施不同的操作。
級別2:又名級別1瓦特/柔順使用標準HTTP方法/動詞和多狀態碼的響應
3級的:又名級別2加HATEOAS(包括在響應超媒體,其描述附加呼叫你可以)
雖然1級,2級和3級可視爲REST系統,只有嚴格的等級(又名2級和3級)被認爲是REST風格。
所以基本上所有的RESTful API中的REST API的,但不是所有的REST API是基於REST的
REST描繪的軟件架構,應用到客戶端服務器通信。
RESTful實現REST架構和它們使用REST的客戶端的網關。
- 1. restful和rest api之間有區別
- 2. REST和API有什麼區別?
- 3. REST和HTTP協議有什麼區別?
- 4. Twitter流API和REST有什麼區別?
- 5. Apex REST和REST API之間的區別
- 6. cURL + HTTP和RESTful Web服務有什麼區別?
- 7. Restful web服務和WSDL有什麼區別?
- 8. Nhibernate和SubSonic有何區別?
- 9. MonoTouch和MonoDevelop有何區別?
- 10. MySQLi和PDO有何區別?
- 11. 4GL和DSL有何區別?
- 12. DELETE_ORPHAN和DELETE有何區別?
- 13. bcpow和pow有何區別?
- 14. V8和ES8有何區別
- 15. PopUpWindow和Dialog有何區別?
- 16. ifne和ifnonnull有何區別?
- 17. Ntxxx和ZWxxx有何區別?
- 18. MXML和Actionscript3有何區別
- 19. Progressbar和progressDialog有何區別?
- 20. Date.current和Date.today有何區別?
- 21. RMI和Corba有何區別?
- 22. beginTrackingWithTouch和touchesBegan有何區別?
- 23. ServletContext和ServletActionContext有何區別
- 24. DynaActionForm和ActionForm有何區別?
- 25. tincan和Scorm有何區別?
- 26. wcsncpy和wcscpy_s有何區別?
- 27. vbscript和vb.net有何區別?
- 28. PREMIRRORS和SOURCE_MIRROR_URL有何區別
- 29. jquery.js和jquery.lite.js有何區別?
- 30. Cond和Case有何區別?
問題的原因是因爲如果您閱讀鏈接中的文章並查看Fielding博士對大多數REST實現的看法,那麼他們根本就不是REST系統。它們表現出REST式行爲,但不能歸類爲REST系統。 – AwkwardCoder 2009-10-14 20:45:46
我讀過這篇文章,但我不認爲這導致他在語義上無用的區別。 – JasonTrue 2009-10-14 20:50:22
關於REST的維基百科文章 - http://en.wikipedia.org/wiki/Representational_State_Transfer - 第二段 - 「符合REST約束通常被稱爲」RESTful「。」 – Nate 2009-10-15 03:09:42