GAE HTTP会话; 为什么禁用它?

ecb*_*die 1 java google-app-engine httpsession

我的问题是关于Java GAE应用程序(链接)中的HTTP会话.在appengine-web.xml的默认版本中,会话被禁用.此HTML注释位于XML文件的每个起始版本中:

  <!--
    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
  -->
Run Code Online (Sandbox Code Playgroud)

我很明白设置<sessions-enabled>为true 的好处:我们可以利用servlet中的HTTP会话.然而,这已经让我不知道为什么会有人永远希望启用放在首位会议.启用会话的缺点是什么?有什么用例可以让他们禁用?

我不确定这个问题是否与GAE的Python或Go运行时相关,我只了解Java运行时.

Luc*_*lho 5

启用会话的缺点是运营成本较高.许多大型高流量Web站点不会保留匿名用户的会话数据以节省基础架构.随着带宽,CPU和内存变得越来越便宜,这一点越来越不重要.当然,这取决于您的预算,您的网站的功能以及您希望在预算范围内扩展的程度.

HTTP是无状态协议.这使得它易于实现且具有可扩展性,这是其取得惊人成功的两个原因.

过分依赖会话会使许多Web应用程序变得不必要地复杂且难以扩展.