2011-08-29 152 views
4

我实现服务器到服务器的通信应该(可能)是这样的:服务器到服务器的通信使用卷曲,HTTPS POST

客户网络浏览器)< - >(网络应用程序服务器服务客户端)< - >(服务应用中央服务器

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

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

因此,出现下列问题:

  1. 是否有某种方式来加速这种HTTPS请求?例如,在第一次成功连接后以某种方式绕过验证?
  2. 我可以自己放弃HTTPS(特别是其耗时的证书检查程序)和自行加密/解密POST和JSON(例如,使用mcrypt)并结合某种授权方法(Diffie-Hellman)吗?
  3. 我是否做了完全错误的事情,应该立即停止?

谢谢!

回答

0
  1. 批请求了队列中,同时向他们发送X号码,如果有可能
  2. 您可以发送该请求的授权密钥,只有在服务器和中央服务器会知道如何组装。但是这会使您的实际数据很明显,这可能会也可能不会成为问题。
  3. 不,我马上就可以看到
+0

1.几乎所有的请求都应该立即执行(或类似的),所以恐怕队列不是一个选项。 – Xifax

1

你有没有测得的HTTPS连接的开销?它真的很重要吗?

如果您希望避免为每个请求执行握手,可以尝试在服务器和中央服务器之间设置持久安全连接。

你可以做到这一点与一个SSH隧道,VPN等

编辑:维持在中央服务器上保持活跃的连接将是一种选择过于本地反向HTTP代理。

+0

是的,与http相比,开销是3到5倍大。 – Xifax

+0

另外,如果我使用SSH隧道,它将类似于套接字实现。据我所知,这与当前使用cURL(和RESTful-like协议)的想法相矛盾。 – Xifax

+0

隧道可能是两台服务器之间的虚拟网络,不一定是与服务的直接连接。另请看看本地反向代理解决方案。 – arnaud576875