2011-08-29 198 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