何时使用URL/session/cookie变量?

9
我经常使用php和javascript,但我认为这是一个相对语言无关的问题。使用以下哪种变量时有最佳实践:
  • URL变量
  • SESSION变量
  • cookies
我了解它们中的一些本质限制,但它们的使用有时会重叠,这就是我真正想问的。 编辑 仅澄清一下:我非常熟悉存储方法以及客户端/服务器可以访问哪个方法的技术细节。我正在寻找的是更高级别的东西,例如“临时用户设置应存储在cookie中,数据状态信息应存储在服务器上等”。
谢谢!
3个回答

11

总体而言:

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

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

  3. 尽可能避免使用Cookie。仅在需要将设置与特定计算机/用户配置文件关联时才适度使用它们,例如“在此计算机上记住我的用户ID”这样的设置。


7
  1. 会话(Sessions)存储在服务器上,这意味着客户端无法访问您存储的有关他们的信息。由于会话数据存储在您的服务器上,因此不需要在每个页面中完全传输数据;客户端只需发送ID即可从服务器加载数据。

  2. 另一方面,Cookie 存储在客户端上。它们可以持久存在很长时间,并且在您拥有一组 Web 服务器时可以使工作更加流畅。但与 Sessions 不同,存储在 Cookie 中的数据会随着每个页面请求完全传输。如果您需要更长时间的登录会话,则应使用 Cookie。

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


谢谢,shamittomar。我没有将其标记为已接受(我的错;请参见上面的澄清),但仍然投票支持,因为您当前的声望是666。 :-o - loneboat

0

当禁用cookies时,PHP将会直接嵌入会话ID到URL中。那么,该会话ID将通过HTTP GET变量的值进行访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接