2011-02-07 68 views
2

什麼是在以下情況下良好的/可擴展的用戶會話的選擇:高流量Web應用程序中用戶會話的好替代方案?

  • 用戶不必啓用了Cookie
  • URL爲255個字符的查詢字符串施加限制
  • 很多GET請求(沒有隱藏表單域)
  • 應用在多個服務器(Web場)
  • 一些用戶進行連接代理運行(同一IP)
  • 用戶連接通過HTTPS
  • 50 000個併發用戶

回答

3

如果你能保證客戶端始終連接到同一臺服務器,可以使用SSL ID作爲一個簡單的會話跟蹤機制。某些Web服務器公開此功能,並在Cookie不受支持時自動將其用於會話跟蹤。

唯一的解決辦法,將工作,不管是什麼,包括在URL中的會話ID。向URL中添加參數是實現此目的的最簡單方法,但ID可以嵌入URL中的任何位置,即作爲路徑的一部分。您將使用此ID從數據庫中獲取有關用戶的信息。

你會遇到的常見問題,當然與ID欺騙和具有會話數據庫是一個瓶頸。

0

也許URL Rewriting或一些URI縮短機制像http://tinyurl.comhttp://goo.gl這樣你就可以通過你的會話細節以及在255個字符。
注:不建議使用這些服務,但該機制。

+0

哼哼......我已被放下。爲什麼? – JSS 2011-02-07 16:14:29

+0

我沒有投票給你,我只提供一個解釋。 URL的查詢字符串部分是唯一受字符限制的部分,而不是整個URL。查詢字符串是'?'後的URL部分。 – rancidfishbreath 2011-02-07 18:07:38

1

首先,恕我直言,沒有很好的替代會話。問題是,當cookies被禁用時,你如何獲得它。答案是使用URL參數。所以,你必須將會話ID附加到每個請求(包括鏈接和表單)。所有其他要求並不真正相關。使你的邏輯無狀態,所以你沒有可擴展性問題:所有的請求都應該通過負載平衡器到達你的邏輯,所以你可以添加任意數量的服務器。

0

50000個用戶在做什麼?持續拖放位置更新到服務器或每15分鐘點擊一次文本鏈接?在最後一種情況下:將所有內容都移動到一臺具有大量內存的服務器上。

相關問題