NuSOAP と PHPRPC_PHP チュートリアルの比較

WBOY
リリース: 2016-07-13 17:35:21
オリジナル
825 人が閲覧しました

因为看到有人问 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 层网络模型,实现高效,使用方便。

次に、PHPRPC プロトコル実装の Nusoap バージョンと PHP バージョンを比較してみましょう:
類似点は、両方とも PHP で使用されることです。
違いは主に使いやすさにありますが、使いやすさの点では Nusoap はかなり優れていますが、PHPRPC プロトコル実装の PHP バージョンと比較するとはるかに遅れています。例えば、Nusoap が公開するサービス関数は別途記述する必要があり、PHP の組み込み拡張関数はもちろん、ローカル関数と同じように書くことはできませんが、PHPRPC が公開する関数はローカル関数とまったく同じです。 、PHP 組み込み関数も含めて、直接公開することもできます。 Nusoap を使用して wsdl を公開するには、公開する各プロセスの名前、パラメーター名、パラメーターの型、戻り値の型、名前空間、アクション、スタイル、ドキュメントなどを定義する必要があります。 PHPRPC サービスを公開するには、公開する関数の名前 (オブジェクト メソッドまたはクラス メソッドの場合もある) をサーバーに伝えるだけです (エイリアスを指定することもできます)。パラメータ名、パラメータの型、戻り値の型などの情報を指定する必要はありません。したがって、可変長パラメーターの場合、可変型パラメーターのサポートが強化されます。 PHPRPC クライアントを使用すると、リモート関数名を付けたローカル PHPRPC クライアントのメソッドを使用してリモート関数を直接呼び出すことができますが、Nusoap は比較的面倒です。 PHPRPC のもう 1 つの大きな利点は、Nusoap ではできない、安全な暗号化された送信を通じて簡単にリモート呼び出しを行うことができることです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508347.html技術記事 Nusoap と PHPRPC の比較について質問している人を見かけたので、皆さんに Nusoap と PHPRPC の関係をより明確に理解してもらうために、ここで簡単に説明します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!