回答
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