2013-02-05 23 views
1

我的問題是關於Java GAE應用程序中的HTTP會話(link)。在缺省版本appengine-web.xml中,會話被禁用。此HTML註釋是在XML文件中的每一個版本開始:GAE HTTP Session;爲什麼禁用它?

<!-- 
    HTTP Sessions are disabled by default. To enable HTTP sessions specify: 

     <sessions-enabled>true</sessions-enabled> 

    It's possible to reduce request latency by configuring your application to 
    asynchronously write HTTP session data to the datastore: 

     <async-session-persistence enabled="true" /> 

    With this feature enabled, there is a very small chance your app will see 
    stale session data. For details, see 
    http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions 
    --> 

我明明知道設置<sessions-enabled>到真正的好處:我們可以利用HTTP會話在我們的servlet。然而,這讓我想知道爲什麼有人會想要首先啓用會話而不是。啓用會話有什麼缺點?存在哪些使用案例可以使其失效?

我不確定這個問題是否與GAE的Python或Go運行時相關,我只知道Java運行時的知識。

回答

5

啓用會話的缺點是運營成本較高。許多大型高流量網站不會保留匿名用戶的會話數據以節省基礎設施。隨着帶寬的增加,CPU和內存變得越來越便宜,這就越來越不重要了。當然,這取決於您的預算,您的網站的功能以及您希望在預算範圍內擴展的程度。

HTTP是一種無狀態協議。這使其易於實施並具有很大的可擴展性,這是其驚人成功的兩個原因。

過度依賴會話會導致很多Web應用程序不必要的複雜且難以擴展。

相關問題