2012-05-04 71 views
0

我有一個iOS應用程序正在使用ASIHTTPRequest與REST服務器對話。服務器支持端口80(HTTP)和端口443(HTTPS)上的連接 - 我在端口443上使用GeoTrust/RapidSSL證書。用戶可以配置應用程序以選擇他們想要使用的協議。我使用WireShark監視服務器上的流量,我發現偶爾如果用戶在HTTP和HTTPS之間切換,當他們接下來提交請求時,我可以看到兩個協議的流量,然後每個請求之後是僅適用於新選擇的協議。iOS ASIHTTPS請求在HTTP/HTTPS連接之間切換

此外,當應用程序關閉,有幾個數據包發送,我猜是某種清理。這些最終數據包的類型(HTTP/HTTPS)取決於應用程序使用的協議。如果應用程序已設置爲在同一應用程序會話期間同時使用HTTP和HTTPS,則應用程序關閉時將發送HTTP和HTTPS數據包。這些情況對我來說似乎不太合適,並建議我的ASIHTTPRequest沒有完全清除。我的請求在響應「HTTP/0.9 200 OK」完成時偶爾出現錯誤,但不返回任何數據,我認爲這是由於嘗試使用HTTP與端口443進行通信所致。

有人可以證實我的懷疑是真的嗎?是否有一些命令我應該使用ASIHTTPRequest後清除它,以便下一個請求可以在不同的協議上發送?

回答

0

你所看到的聽起來像HTTP持久連接意味着什麼;見http://en.wikipedia.org/wiki/HTTP_persistent_connection等。

沒有什麼是你需要做的,沒有任何傷害。切換協議時看到的幾個http數據包只是舊的套接字關閉了,我相信 - 我認爲你只是看到數據包到TCP端口80,並沒有看到任何數據包與實際的http請求。