【问题标题】:When to use URL/session/cookie variables?何时使用 URL/会话/cookie 变量?
【发布时间】:2011-04-03 08:17:28
【问题描述】:

我做了很多 php 和 javascript,但我认为这是相对于语言无关的问题。是否有任何最佳实践来说明何时使用以下各项:

  • 网址变量
  • 会话变量
  • cookies

我了解其中一些不能做的事情的固有局限性,但似乎它们的使用有时也会重叠,那些实例就是我我真的在问。


编辑 澄清一下:我非常熟悉哪种方法存储在哪里以及客户端/服务器可以访问哪些技术。我正在寻找的是更高层次的东西,比如“临时用户设置应该存在于 cookie 中,数据状态信息应该存在于服务器上,等等......”

谢谢!

【问题讨论】:

    标签: php url session cookies


    【解决方案1】:

    一般:

    1. 使用 URL (GET) 参数向服务器发送简单的请求参数,例如。搜索查询或产品列表中的页码。

    2. 顾名思义,使用会话变量来存储与特定用户会话相关的临时数据,例如。登录用户的 ID 或非持久性购物车。

    3. 尽可能避免使用 cookie。谨慎使用它们来存储与特定计算机/用户配置文件相关的设置,例如。诸如“记住我在这台计算机上的用户 ID”之类的设置。

    【讨论】:

      【解决方案2】:
      1. 会话存储在服务器上,这意味着客户端无法访问您存储的有关它们的信息。存储在您的服务器上的会话数据不需要与每个页面一起完整传输;客户端只需要发送一个ID,数据就会从服务器加载。

      2. 另一方面,Cookie 存储在客户端上。它们可以长期耐用,并且当您拥有一组 Web 服务器时,它们可以让您更顺畅地工作。然而,与 Sessions 不同的是,存储在 Cookies 中的数据会随着每个页面请求完整传输。如果您需要更长的登录会话,您应该使用 cookie。

      3. URL 变量 (GET) 是开放的,用户可以看到。它们也很有用,因为它允许用户为页面添加书签并共享链接。

      【讨论】:

      • 谢谢,沙米托马尔。我没有将其标记为已接受(我的错;请参阅上面的说明),但仍然赞成,因为您当前的声誉是 666。:-o
      【解决方案3】:

      当 cookie 被禁用时,PHP 将会话 ID 直接嵌入到 URL 中。然后,会话 id 变为可通过 HTTP GET 变量访问的值。

      【讨论】:

        猜你喜欢
        • 2012-10-29
        • 2014-10-14
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        • 2012-12-07
        • 2012-07-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多