2015第27周二

1 WebService有很多协议,为什么HTTP比较流行?

WebService是个很重型的规范,它的应用协议是SOAP(简单对象访问协议),它所依赖的下层通信方式不单单是HTTP,也有SOAP over SMTP, SOAP over TCP,由于HTTP协议群众基础广,开发调试方便,所以,成了WebService中最为流行的方式。

甚至很多公司在内网通信,也用HTTP来做,比如,应用调用搜索引擎,Solr就是一个例子。

但HTTP也是TCP上性能比较差的协议,因为HTTP是基于TCP的,有3次握手,再加上HTTP是个文本传输协议(虽然也可以传二进制的附件,但业务逻辑还是文本用的多),又有很多复杂的HEADER。所以人们发明了一些更高效的通信协议来做远程调用,比如ACE、ICE、Corba、淘宝的HSF,但这是后话了,不展开细说。你只要知道,HTTP之所以流行,乃是简单易用群众基础广的结果。

2 WebService为什么不如RESTful API流行

WebService诞生十几年了,最初是IBM、微软比较热心在推,一直也不温不火。倒是XML-RPC, RESTful以及比RESTful还要简陋的远程调用方式后来居上。感觉是不是有点像民间的Spring干掉官方的EJB?

究其原因,还是WebService实在太笨重了,SOAP信封犹如婆娘的裹脚布,又臭又长,广大开发人员是叔可忍嫂不能忍,于是就有了简化版的,叫XML-RPC,后来伴随着Web2.0流行,RESTful独领风骚。我在10年前做过一个产品,纯PHP+JS,标准的WebService,连WSDL我都要专门写个PHP程序来生成,还好只是我一个人开发,要是团队协作,我早就被骂得不成人形了。

再后来,连RESTful都被嫌弃了,大伙儿干脆连PUT、DELETE都懒得用,直接用GET和POST。

同时,我得说,这只是在互联网领域,大部分企业的业务逻辑相对简单,同时工期又变态的短(就像大部分互联网创业公司用糙快猛的PHP,而不用相对严谨的Java一样)。在某些业务复杂,稳定性和正确性要求高的领域(如ERP、电商、支付),WebService还有是用武之地的。

3 为什么JSON比XML流行

还是易用性,JSON的可读性比XML强几条长安街,解析规则也简单许多。XML解析的时候规则太多了,动不动就非法字符,动不动就抛异常。这对追求高开发速度和低开发门槛的企业来说,是个致命伤。

JSON的缺点是数据类型支持较少,且不精确。比方说:

price:12580

在json里,你无法知道这个价格是int, float还是double。

所以,如上面第二条所述,在一些业务要求较高的领域,还是XML更合适。

最后说一下性能,JSON的性能高于XML,除此之外,基于XML和HTTP的WebService, 基于JSON的RESTful API,并没有性能差异。

XML性能糟糕到什么地步呢,有一种专门的CPU叫做XML Accelerator,专门为XML解析提供硬件加速。

总结:更流行的原因是简单易用。

来自为知笔记(Wiz)

时间: 2024-09-30 20:58:12

2015第27周二的相关文章

Java学习笔记(2015.7.27~7.31)

Java学习笔记(2015.7.27~7.31) Java 课堂 Java学习笔记(2015.7.27~7.31) 小技巧 常用方法 1.List另一个子类--LinkedList 2.数组的常用方法 3.排序 1.二分法查找 2.数组转换为List 3.可变参数Type ... param (了解) 1.容器Collection 2.自动拆装箱(了解) 3.JDK增强for循环(了解) 4.泛型(掌握) 5.iterator与for在迭代中的区别 1.概念:保存多个对象的对象. 2.JDk为什

【谜客帝国】第十二届老爱老谜会(2015.1.27)

谜客帝国第十二届老爱老谜会(2015.1.27)主持:瓷       计分:晶莹1.齐下西湖捞残月(8笔字)沸2.巴黎第二季(中药)法夏3.其中五点全用(2字手机品牌)金立4.分店遍及全中国(2字部队称谓)营长5.小人不足提(字)捈6.再三犯错,二十载来担心受怕(2字蔬菜名)茭白7.下来亲吻(中药)降香8.兄长欲断交(2字手机品牌)谷歌9.蟋蟀后来死亡(中药)虻虫10.“妇女”节前天挥毫书双令(中药二•3+3)三七草/千张纸.注:双令-四国军旗术语:一令五百张纸11.八仙半数痴(3字穴位名)四神

2015第14周二

今天调试程序时发现自己犯了一个很弱智的错误,先把实体类保存到数据库中再修改它的某个属性,结果当然修改后的属性值没保存到数据库中,赶紧调整顺序后解决,之前写那端程序时太不小心了,惭愧.今天用sql语句更新一个列的值加1时发现总不成功,后来看该列值为null,用它做加法当然不行,然而sql语句也没报错误,后来把列默认值设为0后解决. 今天三月最后一天,2015第一个季度完了,第二个季度要更加努力进步.工作.生活.

2015第7周二技术学习

IE下使用jQuery重置iframe地址时内存泄露问题解决办法 页面中有个iframe: ? 1 2  <iframe src='a.html'></iframe> <button>测试IFRAME泄露</button> 其中a.html内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3

我关注的一周技术动态 2015.09.27

分布式系统实践 1. 走向分布式 http://dcaoyuan.github.io/papers/pdfs/Scalability.pdf 要点: 这是台湾的一个作者写的为期30天的分布式系统设计学习小册子, 刚开始涵盖了分布式系统设计的基本理论, 包括partiton, replication和CAP理论, 后面以kafka和zookeeper为例, 将上述理论加以实例化介绍, 内容非常精简, 适合初学者阅读和学习. 2. 如何编写一个分布式数据库 http://mp.weixin.qq.c

分布式技术一周技术动态 2015.12.27

分布式系统实践 1. Kafka深度解析 http://www.jasongj.com/2015/01/02/Kafka%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/ 要点: 这篇文章深入的讲解了kafka的架构设计, 数据复制算法以及kafka的性能等多个方面, 是理解和学习kafka非常难得的一篇好文章, 推荐给大家. 2. 解密阿里巴巴高可用架构技术——“异地多活” http://mp.weixin.qq.com/s?__biz=MzAwNjQwNzU2NQ==

2015.10.27 2013---长春

这场做了5题 呜呜呜--- 这场老是读错题,,,还读不懂题,,, 可以滚了--- A - Hard Code 签到 B - Golden Radio Base 进制的转换---读好久读不懂题--- C wtw 写的 D 读好久读不懂题--- E F syh发现是白薯模板题-- G wtw 用哈希,线段树搞的-- 还是不懂他怎么搞的 先用的模是1e9+7,,,wa了--- 后来用了这个----998244353 就过了-- J 最开始还以为是水题----sad--- 后来看了题解做的--- htt

voa 2015 / 4 / 27

As reports of the death toll rise in Nepal, countries and relief organizations around the world are rushing to send personnel and supplies to aid the search and rescue effort. Within hours after the earthquake struck Nepal on Saturday, April 25, Indi

2015.11.27初识java一集简单的java小程序

今天是来到汉企第二天,昨天主要学习了JAVA配置环境变量方法:1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME变量值:D:\Java\jdk1.7.0_60_x64(变量值必须为全英文路径,不能有中文) 变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(完全复制即可)3. 选择“系统变量”中变量名为“Path”的环境变量,双击该