Php 使用cURL、HTTPS-POST的服务器到服务器通信

Php 使用cURL、HTTPS-POST的服务器到服务器通信,php,curl,https,security,Php,Curl,Https,Security,我正在实现(可能)如下所示的服务器到服务器通信: 客户端(web浏览器)(web应用)服务器(服务客户端)(服务应用)中央服务器 有些客户端请求在本地处理,有些作为远程服务调用(不是RPC)执行。对中央服务器的请求被格式化为HTTPS POST,然后使用cURL发送;服务器用适当的JSON消息进行回复 问题是,我使用的是HTTPS,每次执行服务查询时,证书验证都需要一些额外的时间。可以重用cURL句柄并发送“keep-alive”连接头,但是。。在当前的MVC实现中,每个新的客户机请求都会产生新

我正在实现(可能)如下所示的服务器到服务器通信:

客户端(web浏览器)(web应用)服务器(服务客户端)(服务应用)中央服务器

有些客户端请求在本地处理,有些作为远程服务调用(不是RPC)执行。对中央服务器的请求被格式化为HTTPS POST,然后使用cURL发送;服务器用适当的JSON消息进行回复

问题是,我使用的是HTTPS,每次执行服务查询时,证书验证都需要一些额外的时间。可以重用cURL句柄并发送“keep-alive”连接头,但是。。在当前的MVC实现中,每个新的客户机请求都会产生新的web应用实例(以及相应的服务客户机)——这意味着重新初始化句柄,并重新建立https连接

因此,出现了以下问题:

  • 有没有办法加快这种HTTPS请求的速度?例如,在首次成功连接后,是否以某种方式绕过验证
  • 我是否可以放弃HTTPS(特别是它耗时的证书检查过程)并自行加密/解密POST和JSON(例如,使用mcrypt)以及某种授权方法(Diffie Hellman)
  • 我是否做了一些完全错误的事情,应该立即停止
  • 谢谢大家!

  • 在队列中对请求进行批处理,如果可能的话,一次发送x个号码
  • 您可以发送授权密钥和请求,只有服务器和中央服务器可能知道如何组装。但这将使您的实际数据清晰可见,这可能是一个问题,也可能不是一个问题
  • 不是我马上就能看到的

  • 您是否测量了HTTPS连接的开销?这真的很重要吗

    如果希望避免对每个请求进行握手,可以尝试在服务器和中央服务器之间建立持久的安全连接

    您可以通过SSH隧道、VPN等实现这一点


    编辑:在中央服务器上维护保持活动连接的本地反向HTTP代理也是一个选项。

    是的,开销是HTTP的3到5倍。此外,如果使用SSH隧道,它将类似于套接字实现。据我所知,这与当前使用cURL(以及类似RESTful的协议)的想法相矛盾。隧道可能是两台服务器之间的虚拟网络,而不一定是与服务的直接连接。还可以看看本地反向代理解决方案。1。几乎所有的请求都应该立即执行(或者类似的事情),所以恐怕队列不是一个选项。