REST和RESTful有什么区别?

REST系统和RESTful系统有什么区别?

从我读过的大部分所谓的REST服务中,有一些是RESTful服务。 那么两者有什么区别?

具象状态传输(REST)是一种软件体系结构。 正如Roy Fielding的论文所述,REST是一种“架构风格”,它基本上利用了Web的现有技术和协议。

RESTful通常用于指代实现这种架构的Web服务。

“rest”是一个build筑范例。 “RESTful”描述使用这种范例。

正如Jason在评论中所说,RESTful只是用来描述尊重REST约束的一个形容词。

基于REST的服务/体系结构VC RESTFUL服务/体系结构

要区分或比较这两个,你应该知道什么是REST。 REST(Representational State Transfer)基本上是一种具有一些原则的build筑风格的开发。

)它应该是无状态的

)它应该只使用URI访问服务器上的所有资源

)它没有内置的encryption

)它没有会话

)它只使用一个HTTP协议

)为了执行CRUD操作,它应该使用HTTP动词,如get,post,put和delete

。)它只能以JSON或XML,atom,OData等forms返回结果(轻量级数据)

基于REST的服务遵循上面的一些原则,而不是全部,其中RESTFUL意味着它遵循所有上述原则。

它类似于基于对象的语言(它支持所有的OOPS概念,例如C ++,C#)和面向对象的语言(它支持一些OOPfunction,如JavaScript,VB)的概念。 示例是ASP Dot NET MVC 4是“基于REST的”,Microsoft WEB API是“RESTFul”。 MVC仅支持上述REST原则中的一部分,而WEBAPI则支持上述所有REST原则。

MVC仅支持来自REST API的以下内容

)我们可以使用URI访问资源

)它支持HTTP动词从服务器访问资源

。)它可以以JSON,XML(即HTTPResponse)的forms返回结果。

但在MVC同时

)我们可以使用会话

)我们可以把它变成有状态的

)我们可以从基本上违反REST原则的控制器操作方法返回video或图像

这就是为什么MVC是基于REST的,而WEBAPI支持所有上述原则,并且是RESTFul。

REST代表代表性的国家转移。 这意味着国家本身并没有被转移,而只是一种表述。 最常见的例子是一个纯HTML服务器的应用程序(没有JavaScript)。 浏览器对应用程序本身一无所知,但通过链接和资源,服务器能够将应用程序的状态传输到浏览器。 在一个常规的Windows应用程序中,button通常会改变一个状态variables(例如页面打开),在浏览器中你有一个代表这种状态变化的链接。

这个想法是使用超媒体。 也许创造新的超媒体types。 我们可以用javascript / AJAX扩展浏览器,并创build新的自定义超媒体types。 我们将有一个真正的REST应用程序。

这是REST代表的简短版本,问题是很难实现。 我个人说RESTful,当我想参考REST的原则,但我知道我没有真正实现REST的整个概念。 我们并不真正说SOAP,因为你使用SOAP或者不使用SOAP。 我认为大多数人不会像它创build者Roy Fielding所设想的那样进行REST,我们实际上实现了RESTful或REST架构。 你可以看他的论文 ,你会发现REST的缩写,但不是RESTful这个词。

REST是分布式软件的一种软件体系结构

符合REST约束被称为“RESTful”。

今天很常用来构buildWeb服务,作为S​​OAP的替代品。

在这里你有一些链接来检查

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/

感谢您的答案。 阅读Alex Rodriguez的这篇文章 ,其中提到一个REST风格的Web服务有四个基本特征:

  1. 明确使用HTTP方法。
  2. 无国籍
  3. 公开类似目录结构的URI。
  4. 传输XML,JavaScript对象表示法(JSON)或两者。

具象状态传输(REST)是分布式超媒体系统(如万维网)的一种软件体系结构。 代表性状态转移这一术语在2000年由Roy Fielding [2]在他的博士论文中引入和定义。 Fielding是超文本传输​​协议(HTTP)规范版本1.0和1.1的主要作者之一。 符合REST约束被称为“RESTful”。 来源:维基百科

Web服务本质上是网站的内容被计算机程序消费,而不是人。 REST是一套体系结构原则,规定Web服务应该最大限度地利用HTTP和其他Web标准,以便程序获得人们已经可以从Web上获得的所有好东西。 REST常常与SOAP Web服务以及其他“远程过程调用”面向的Web服务形成鲜明对比。

Stefan Tilkov在Parleys.com上对REST的介绍相当不错, 特别是这一个 。

对于一本书,你不可能比Richardson和Ruby的Restful Web Services更好。

基于REST的服务被称为“RESTful服务”。

来源我依靠张贴: Dr.Dobbs档案

http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

这是创buildRESTfulnetworking应用程序的原始文档。 引用了REST维基百科文章的参考资料。 他还共同撰写了HTTP RFC。