登陸

用戶

下一篇:PHP如何禁止外網訪問

体彩排列三带坐标走势图带连线:php - 為什么很多第三方接口,都改成了基于http,直接傳遞json數據的方式來代替webservice?

榮華軟件  1485  1   2017-12-21 16:09

三d连线带坐标走势图 www.gjvgfb.com.cn 曾經不同系統間交互問題時,總是優先考慮webserivce,現在看到除了一些老牌的公司,比如amazonk對眾的接口還是webservice的方式,其他很多國內新項目的接口都開始轉向直接傳json的方式。我知道的優勢之一,就是webservice的消息體肯定比json這種方式要大。請問,除此之外,設計這些對眾接口的時候,還有什么其他的考慮嗎?

1條回答

  • 管理員2

    你這實際上是三個問題,從WebService到今天流行的RESTful API(JSON) over HTTP,經歷了數次變革 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解析提供硬件加速。

    2017-12-21

登陸后可回復

  1. 登陸
  2. 注冊
服務熱線

400-692-8081

( 周一至周五 09:00-17:00 )

聯系我們

名稱:煙臺榮華軟件科技有限公司

地址:煙臺市高新區航天路101號C棟5樓516

座機:0535-3458081

郵箱:[email protected]

Q Q:327195471

[email protected] 煙臺榮華軟件科技有限公司 版權所有 魯ICP備14003838號-1