RESTful WebService和web service的区别

如题所述

一个最简单web服务就一个web页面等待请求与处理。更容易理解的方式是Web
Service可以把一个应用变成一个基本WEB方式的请求与处理的应用。常见的两种
Web Service处理方式为:
a. 基于WSDL/SOAP的方式
b. Rest方式
方式a是比较正统的,客户端调用必须先取得WSDL文件,然后生成调用的API才可
以使用。它不是我要说的重点,基本调用流程如下:

方式b是Rest方式,Rest的Web Service的设计原则是基于CRUD,其支持四种操作分
别为:
GET – 获取信息/请求信息内容,绝大多数浏览器获取信息时使用该方式。
POST – 增加信息内容,显示以前的信息内容,可以看作是insert操作
PUT – 更新信息内容,相当与update
DELETE – 删除信息内容可以看作是delete

Rest方式更加简单便捷,如果从设计原则上看HTTP协议本身已经是最Restful风格的
协议了HTTP协议很好的支持了CRUD的操作。正是因为如此,WEB2.0以来, 基于
Restful的Web Service越来越多的成为首选。

二:认识RestfulStyle
Rest的全称是可表述状态迁移(RepresentationalState Transfer), 可能从字面看有点奇怪
HTTP协议本身无状态协议,其保持连接通过设置请求头字段Connection: keep-alive与
设置过期时间来同时控制。其实Rest方式的WebService也是无状态的这样做的好处最少
有以下两个:
1. 更好的负载平衡,减轻服务器端负担
2. 更快的客户端响应,减少不必要的状态检查。

Restful 风格的兴起,要感谢互联网巨头Google,Facebook等他们提供大量基于Restful
风格的web服务,从谷歌地图到天气预报到翻译,国内的互联网巨头腾讯,新浪微博也
发布自己的web服务,吸引更多的开发者加入他们的阵营。Rest除了满足基本的CRUD
设计原则之外,还要遵循如下约定:
1. 资源操作可以通过描述来实现即Representation
2. 消息本身是无状态与自我描述(传输支持XML与JSON)
3. 可以发送与接受多个Representation

Rest风格(Restful Style)架构原则:
1. 客户服务器方式
2. 无状态协议传输
3. 支持缓存
4. 统一接口定义
5. 分层系统设计
这样发布了Rest的Web服务API其改变不会影响到客户端程序与实现。如果你的系统
不能适用Rest风格的架构怎么办,重新设计一个新的架构,扩展Rest风格架构。但是
这个世界上绝大数的系统与应用要做的事情就是CRUD。

三. Rest与HTTP
上面已经提到过HTTP协议可能是最Rest风格的协议,而HTTP1.1协议设计的一个原则
就要实现Rest风格。所以毫无疑问HTTP的GET, POST, PUT, DELETE就是最好的证明
但是Rest风格是否可以应用到其它一些协议与系统设计中嘛,答案是肯定的,一个最好
的例子证明就POP3协议, POP3支持Fetch 数据记录,查询记录,更新记录与删除记录
(记录代表email)多么完美的Rest风格协议。

已经存在的HTTP协议应用:
1. 浏览器客户端(你天天上网,不是IE就是Chrome,或者其它浏览器,你懂的)
2. 即时消息通信,MSN/Skype支持
3. 各种内容管理系统
4. 博客系统与微博客户端应用。
5. 你可以来补充/?
温馨提示:答案为网友推荐,仅供参考
相似回答