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

时间:2010-08-24 18:18:08

标签: php url session cookies

我做了很多php和javascript,但我认为这是一个与语言无关的问题。什么时候使用每种方法都有最佳实践:

  • 网址变量
  • SESSION变量
  • 饼干

我理解其中一些不能做的内在限制,但似乎它们的使用有时也会重叠,那些实例就是我我真的在问。


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

谢谢!

3 个答案:

答案 0 :(得分:8)

一般来说:

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

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

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

答案 1 :(得分:6)

  1. 会话存储在服务器上,这意味着客户端无权访问您存储的有关它们的信息。存储在服务器上的会话数据不需要与每个页面完整传输;客户只需要发送一个ID,然后从服务器加载数据。

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

  3. 网址变量(GET)已打开,可供用户查看。它们也很有用,因为它允许用户为页面添加书签并共享链接。

答案 2 :(得分:0)

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