原文地址:蓝精灵——默默争上游

笔记:

SOAP和REST是两种实现WebService的主要方案(Web API部署REST貌似占了大半壁江山)

  • REST Web Services 基于 HTTP 协议
  • SOAP Web Services 支持多种传输协议:HTTP、SMTP、MIME等

Java开发WebService最重要的两个规范:

  • JSR-224 (JAX-WS:Java API for XML-Based Web Services ) ,主要使用soap协议,使用wsdl来描述;
  • JSR-311 (JAX-RS:The Java API for RESTful Web Services),使用wadl描述;

REST与SOAP的区别:

  • REST为每一个资源指定一个唯一的URI,用HTTP的4种方法发送请求:GET、POST、PUT、DELETE直观地表示获取、创建、更新和删除。
  • SOAP仅仅使用POST方法发送请求,用一个唯一的URI标识服务的入口。(因为SOAP并不假定传输数据的下层协议,因此必须设计为能在各种协议上运行。即使绝大多数SOAP是运行在HTTP上,使用URI标识服务。这种设计被诟病之处,在于DELETE操作也要用POST方法来发送,而其实HTTP协议有更和逻辑的DELETE方法可用。)

尺长寸短:
REST的优点:REST简单而直观,把HTTP协议利用到了极限。
SOAP:复杂的需求摧残了易用性。

说到底,没有谁是万能的

  • REST用WADL来描述REST接口。WADL就像是WSDL的REST版,随着REST被应用到复杂的领域,SOAP的影子无处不在。
  • 事实上,一些Web Service提供者提供的REST API只有REST的外壳,传输的请求和应答全然是简化了的SOAP。

“没有一项技术能一劳永逸地解决所有问题,只需要在预定的约束下优美地解决所在领域的问题就足够了。

一项新技术推出的时候总是引来无数的跟风和吹捧,只有当尘埃落定之后才能得到中肯的评价。”

最新文章

  1. 使用国内pypi源来安装python包
  2. <<< Google hack
  3. c#变量缺少using引用,如何快速加上using,加Using的快捷键[bubuko.com]
  4. VC++ 截屏代码,并保存为想要的格式(BMP,JPG,PNG,GIF等格式)
  5. DDD:Repository和UnitOfWork的生命周期问题
  6. Node.js 入门手册:那些最流行的 Web 开发框架
  7. 【js】将table的每个td的内容自动赋值给其title属性
  8. frequentism-and-bayesianism-chs
  9. 给一个Entity的字段付初始化值(C#)
  10. Android从零单排之免费短信验证
  11. 通达OA 小飞鱼工作流在线培训教程文件夹及意见征集
  12. JavaScript之三:jQuery插件开发(一)
  13. ubuntu 14.04 32位库
  14. [BZOJ1083] [SCOI2005] 繁忙的都市 (kruskal)
  15. 什么是SerDes,serializer/deserializer?
  16. .NET Core SDK在Windows系统安装后出现Failed to load the hostfxr.dll等问题的解决方法
  17. ElasticSearch相关文章推荐
  18. Luogu 2147 洞穴勘测 - LCT
  19. Centos6.7配置Nginx+Tomcat简单整合
  20. CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙

热门文章

  1. Array - Two Sum
  2. tcp、http和socket的区别
  3. Dojo的ready函数:dojo.ready(以前的dojo.addOnLoad)
  4. 01_3_查询指定id的单个对象
  5. 如何将字符串@“ abc123.xyz789”倒置
  6. 【费用流】bzoj1834: [ZJOI2010]network 网络扩容
  7. Qt的由来和发展
  8. Confluence 导出为 PDF 格式 - 导出多个页面或者整个空间
  9. python之自定义排序函数sorted()
  10. Linux学习-什么是 daemon 与服务 (service)