【问题标题】:What are sessions and cookies in php and where are they stored?什么是 php 中的会话和 cookie,它们存储在哪里?
【发布时间】:2010-06-21 06:55:04
【问题描述】:

什么是 php 中的会话和 cookie,它们存储在哪里?

我搜索了但我找不到确切的答案。

【问题讨论】:

标签: php


【解决方案1】:

HTTP 是 stateless。这意味着每当您从网络服务器请求某些内容时,它都会为请求的页面提供服务并立即忘记您。

想象一个购物车:

您在购物车中添加了一些东西。服务器将有某种数据存储来记住您将物品 X 放入购物车,但由于 HTTP 是无状态的,下次您调用服务器时,它不会记住是您将物品放入购物车。网络服务器可以在返回的页面上创建一个表单,并使用您添加的每个项目来填充它。现在您添加另一个项目,但也发送您已经添加的项目。重复。这有效地转移了您对每个请求的交互的整个状态。但这相当低效和不安全。

使用Sessions enabled,网络服务器将为您创建一个唯一的ID,即所谓的Session ID。这将用于在后续请求中链接您和购物车。通常,会话 ID 在Cookie 中发送到浏览器。从技术上讲,这是通过 HTTP 标头发生的:

Set-Cookie: PHP_SESS=abcdefg123456

浏览器读取标头并在浏览器内的 cookie 存储中创建或更新 cookie 文件。通常 cookie 文件只不过是您计算机上文本文件中的键/值存储。如果你想看看他们谷歌“[浏览器名称]在哪里存储我的cookies”。

在对同一网络服务器的下一次请求时,您的浏览器将发送 cookie,网络服务器现在可以将此 ID 与服务器上的某些数据存储(无论设置为session save handler)相关联,例如登录信息、购物车的内容等

有关详细信息,请参阅我在您的问题下方链接的 PHP 手册参考。

【讨论】:

  • 惊人的答案。
【解决方案2】:

Cookie 存储在浏览器中,而不是 PHP 中。您可以通过查看 $_COOKIE['cookiename'] 来获取浏览器发送的 cookie,但据我所知,您不能设置这样的 cookie - 您需要使用 setCookie(),或者可能使用 header('Set-cookie: ...')。

会话可以存储在任何地方,但它们通常只是服务器文件系统上的文件;您的php.ini(或ini_get() 函数)可能有助于找出位置。试试:

$session_file_name = ini_get('session.save_path')."/sess_".session_id();

【讨论】:

    【解决方案3】:

    cookie 是服务器请求客户端存储并在后续请求中发送的一些数据。

    session 是存储在服务器上的一些数据,并通过会话 ID 连接到用户。此会话 ID 大部分时间都存储在 cookie 中。

    会话可以存储在文件系统中,最有可能存储在临时目录中,也可以存储在数据库中。

    cookie 和会话都有一个与之相关的到期日期,因此它们不会永远存在。

    【讨论】:

    • 当你说,This session id is most of the time stored in a cookie. 如果不在浏览器 cookie 中,它会存储在哪里?
    • 会话 id 可以通过例如 URL 传递,但很少使用。
    • 如果浏览器不允许保存 cookie,那么它是通过 Url 传递的?
    • 是的,但是session.use_trans_sid必须在php.ini中启用(并且php必须用--enable-trans-sid编译
    • cookies 有一个过期日期,而会话没有任何过期日期。 Cookie 只保存在客户端浏览器中,但会话可以保存在服务器或本地机器中
    【解决方案4】:

    Cookie 是存储在客户端(浏览器)的一小段数据,而 session 是存储在服务器端的文本文件,其名称存储在 cookie 中。

    就是这样。

    【讨论】:

    • 存储在服务器端 - 这是什么意思。你的意思是它存储在数据库中
    猜你喜欢
    • 2016-09-01
    • 1970-01-01
    • 2010-12-27
    • 2014-06-06
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多