PHPRPC技术简介 主页 > 资讯中心 > 技术知识 >

PHPRPC 是一个的远程过程调用协议。你可以认为它类似于 XMLRPC,但是它们的工作方式有很大的不同。

PHPRPC 3.0 是使用 HTTP 协议作为传输协议的。以后的版本可能会提供更多传输协议的绑定(如 TCP、UDP 等),但 3.0 及其以前的版本只提供了 HTTP 传输绑定的工作方式。

以下所介绍的内容全部是针对 PHPRPC 3.0 协议的,所以不再单独指明版本号。
PHPRPC 仅使用 HTTP 的 GET 和 POST 两种请求方式,不对 HTTP 协议的其它请求方式(如 HEAD、PUT、DELETE 等)提供支持。

PHPRPC 推荐的请求方式是 POST,仅在无法使用 POST 进行请求操作时,才应该考虑使用 GET。因为 PHPRPC 请求不保证是幂等性(idempotency)操作,使用 GET 请求做非幂等性操作,会破坏 GET 的原始语义。尽管在 PHPRPC 中,HTTP 协议仅作为传输协议使用,它的原始语义并不是最重要的,但如果在能够满足它原始语义的条件下,最好还是不要破坏。

远程过程调用中,参数和返回结果是通过 PHP 序列化形式表示的。传输编码采用 Base64 或 JavaScript 字符串方式编码。密钥交换采用 Diffie-Hellman 密钥交换算法。数据加密采用 XXTEA 加密算法

请求的格式采用标准的 application/x-www-form-urlencoded 格式,因为这种格式对于任何 HTTP 客户端和服务器来说都是容易构造和解析的,且可以保持 GET 和 POST 请求的构造和解析的一致性。

响应的格式采用纯文本,所以服务器可以设置响应的 Content-Type 为 text/plain,并设置明确的字符集。

响应格式类似于多行 JavaScript 赋值语句,例如:
phprpc_result="b:1;"; phprpc_errno="0"; phprpc_errstr=""; phprpc_output="";

唯一的例外是,如果请求中包含 phprpc_callback 参数,则响应的尾部会附加上 phprpc_callback 解码后的值。但此参数仅在 JavaScript 客户端中使用。

这种响应格式为 JavaScript 客户端实现跨域调用提供了必要的基础。
 

PHPRPC支持的接口
  1. PHPRPC for PHP
  2. PHPRPC for Java
  3. PHPRPC for JavaScript
  4. PHPRPC for .NET
  5. PHPRPC for Delphi
  6. PHPRPC for ActionScript
  7. PHPRPC for ASP
  8. PHPRPC for Ruby
  9. PHPRPC for Python
  10. PHPRPC for Groovy

 

网站备案:陕ICP备11001048号地址:西安市经济技术开发区凤城六路双威迎宾广场五号楼二单元522101室电话:029-68742186电邮:info@hilltek.net