php webservice是個很重型的規範,它的應用協定是SOAP,它所依賴的下層通訊方式不只是HTTP,也有SOAP over SMTP、SOAP over TCP,且HTTP協定群眾基礎廣,開發調試方便。
推薦:《PHP影片教學》
提到php的webservice。之前還是比較陌生的,因為接觸的少呀,幾乎在所有的公司中沒用過,僅用過的一次好像是接入一個第三方的短信通道,用的是SOAP|WSDL。
一個很極端的話「webservice」已經過時了一點不假:
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解析提供硬體加速。
以上是php webservice是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!