【问题标题】:Can PHP maintain a persistent session with a server, as a client?PHP 可以作为客户端与服务器保持持久会话吗?
【发布时间】:2012-03-03 01:45:23
【问题描述】:

假设我在我的家用电脑上打开浏览器,我访问一个使用会话的站点,只要我不关闭浏览器或保持空闲 24 分钟,会话将在我进行后续 HTTP 时保持对网站的请求。

但是,在我运行 PHP 的服务器上,如果我使用 fopen() 或 file_get_contents() 从同一站点请求页面,该站点是否会为作为我的服务器的“用户”创建会话?有没有办法保持连接打开,以便为后续的 fopen() 请求维护会话?

我可以通过在后续请求的请求标头中传递会话 ID 来做到这一点吗?即我设置包含会话ID 的标头,将标头传递给context_stream_create(),然后将上下文与下一个fopen() 请求一起传递?这可以为 POST 请求完成吗(这是我真正需要做的)?

【问题讨论】:

    标签: php session client fopen


    【解决方案1】:

    任何可以说 HTTP 语言的应用程序都可以保存 cookie,从而将状态保存在 HTTP 中。

    您的问题的答案是肯定的。只需使用正确的协议 (GET/POST) 并发送正确的标头 (Host, User-Agent, ...),您就可以做任何您想做的事情 但你有一个替代解决方案,我认为这门课会有所帮助:PHP Browser Class

    【讨论】:

    • 看起来它适用于我正在做的事情,但它是否包含在每个请求中发送自定义标头的方法?
    • @Joey 你也可以使用 curl。您可以发送任何您想要的标头,包括会话 ID cookie。
    • Browser 类没有添加任意标题的方法,但由于它使用 CURL,因此您可以使用几行代码来完成。
    猜你喜欢
    • 2018-03-03
    • 2021-12-28
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多