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服务,作为SOAP的替代品。
在这里你有一些链接来检查
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服务有四个基本特征:
- 明确使用HTTP方法。
- 无国籍
- 公开类似目录结构的URI。
- 传输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。