NuSOAP與PHPRPC比較_PHP教程

來源:互聯網
上載者:User

因為看到有人問 Nusoap 和 PHPRPC 的比較,為了讓大家能夠更清楚地瞭解 Nusoap 和 PHPRPC 的關係,所以在這裡做一個簡要的說明性介紹,所寫的內容也不是面面俱到的,唯寫了一些主要的比較。更多細節的比較大家可以在使用中自己來對比。

Nusoap 是一個用於 PHP 的 Web Service 實現。PHP 版本的 PHPRPC 協議實現跟 Nusoap 是一個層級的東西。但是 PHPRPC 協議是跟 Web Service 一個層級的東西,所以下面我們來把 Nusoap 實現跟 PHP 版本的 PHPRPC 協議實現進行比較,把 Web Service 和 PHPRPC 協議進行比較。

第一、協議比較:

相同之處:
這兩個協議都是基於 HTTP 協議的,都可以使用 POST 方法提交請求。
主要不同之處:
(1) 請求:WebService 雖然也支援 GET 方式提交請求,但是一般不常用,常用的方式是利用 POST 方法提交 SOAP 格式的請求。而 PHPRPC 支援 GET 和 POST 兩種方式來提交請求,請求格式是最常見的 application/x-www-form-urlencoded 格式,這對於實現一個瀏覽器用戶端來說更加容易。
(2) 響應:WebService 返回的響應是 SOAP 格式的資料,對於瀏覽器用戶端來說,只有利用 XMLHttpRequest 才能夠對其進行處理,因為 XMLHttpRequest 收到跨域調用的限制,因此 WebService 的瀏覽器用戶端無法做到跨域調用服務。PHPRPC 的響應格式是相容於 JavaScript 格式的純文字,因此返回的響應可以直接作為指令碼執行,因此實現瀏覽器用戶端可以完全不依賴於 XMLHttpRequest,利用純 JavaScript 即可實現一個瀏覽器用戶端,而瀏覽器允許跨域下載並執行指令碼,因此 PHPRPC 的瀏覽器用戶端可以做到跨域調用。
(3) 資料交換格式:WebService 中所使用的 SOAP 格式是基於 XML 語言定義的,XML 語言是純文字的,因為其中的某些位置可以增加或刪除一些空白(空格、定位字元、斷行符號或換行)而不影響其所表示的內容,因此其格式可以整理成便於人來閱讀的,但也由於這點的靈活性,對於機器處理來說效率偏低。而 PHPRPC 的資料交換格式是 PHP 序列化格式,PHP 序列化格式可以算是半純文字的,因為其資料的表示格式也是採用人類可讀的方式表示的,但其中任何位置都不可以插入多於的空白,它對機器的可讀性作了很好的支援,不但提供了有效分隔字元,並且提供了字串長度、數組元素個數、對象成員個數等資訊,所以更有利於機器高速處理。因為協議本質上是機機語言,而不是電腦程式設計語言,電腦程式設計語言是人機語言,它應該更偏重於人類可讀性,而機機語言應該更重視機器可讀性。因此可以說 PHP 序列化格式在人類可讀性和機器可讀性之間做到了非常好的平衡。
(4) 頻寬佔用:WebService 是重量級的 Web 服務,其資料格式冗長拖遝,佔用網路頻寬高。PHPRPC 是輕量級的 Web 服務,其資料格式簡單緊湊,佔用網路頻寬低。注意,這裡所說到重量級和輕量級是指網路頻寬佔用,而不是指其提供服務的能力,PHPRPC 所提供的服務能力絕不遜色於 WebService,甚至在很多地方優於 WebService。打個比方說:WebService 就像是 OSI 的 7 層網路模型,看似完美,但實現複雜,使用困難。而 PHPRPC 則像是簡化了的 TCP/IP 的 5 層網路模型,實現高效,使用方便。

第二、然後我們再來比較 Nusoap 和 PHP 版本的 PHPRPC協議實現:
相同之處是都用於 PHP。
不同之處主要在於易用性上,Nusoap 雖然在易用性上做的還算不錯,但是跟 PHP 版本的 PHPRPC 協議實現來比較就差太遠了。例如,利用 Nusoap 發布的服務函數需要單獨編寫,而不能使用跟本地函數同樣的方式進行編寫,更無法使用 PHP 中內建擴充的函數,而 PHPRPC 所發布的函數跟本地函數完全一樣,甚至包括 PHP 內建擴充的函數也可以直接發布。要用 Nusoap 發布一個 wsdl,需要為每一個發布的過程的名稱、參數名、參數類型、傳回值類型、名空間、動作、樣式、文檔等內容進行定義。而要發布一個 PHPRPC 服務,只需要告訴伺服器要發布的那個函數(也可以是對象方法或類方法)的名字(還可以給出別名)即可。而不需要給出參數名、參數類型、傳回值類型等資訊。因此對於變長參數,可變型別參數的支援更好。在 PHPRPC 用戶端的使用上,也是同樣的方便,可以直接以遠程函數名命名的本地 PHPRPC 用戶端的方法來調用遠程函數,而 Nusoap 相對來說比較麻煩一些。PHPRPC 還有一個很大的優勢在於,它可以讓你很輕鬆的以安全加密傳輸的方式來進行遠程調用,這一點 Nusoap 是做不到的。

http://www.bkjia.com/PHPjc/508347.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/508347.htmlTechArticle因為看到有人問 Nusoap 和 PHPRPC 的比較,為了讓大家能夠更清楚地瞭解 Nusoap 和 PHPRPC 的關係,所以在這裡做一個簡要的說明性介紹,所寫的...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.