【问题标题】:Different ways of maintaining session维护会话的不同方式
【发布时间】:2015-01-13 13:47:18
【问题描述】:

在浏览器中维护会话有哪些不同的方法?

考虑一个场景; 我在 Firefox 中浏览一个安全站点,但浏览器崩溃了。现在,当我再次打开浏览器并执行恢复选项卡时,我之前的会话会恢复吗?是浏览器自动处理的还是基于代码的?

我们也可以根据标签关闭和窗口关闭等来控制会话

在服务器上维护会话与在客户端保持会话之间是否有任何联系?

【问题讨论】:

    标签: session


    【解决方案1】:
    What are the different ways of maintaining session in a browser?
    

    维护会话的不同方法是:-

    Cookies(最标准的方式) 网址重写 Html表单隐藏字段

    考虑一个场景;我正在 Firefox 中浏览一个安全站点,并且 浏览器崩溃。现在,当我再次打开浏览器并进行还原时 选项卡,我之前的会话恢复了吗?是这样处理的 由浏览器自动生成还是基于代码?

    如果它是基于 cookie 的,它由浏览器自动处理,否则你将管理它。

    我们也可以根据标签关闭和窗口关闭等来控制会话

    在服务器上,您可以按时间控制会话,这意味着它何时无效,但是如果您想做一些在关闭选项卡时会使会话无效的事情,那么根据我的说法,您可以在 javascript 中绑定关闭事件,然后删除 cookie用于管理会话的 PHPSESSION(以 php 为例)

    在服务器上维护会话与在服务器上维护会话之间是否有任何联系? 客户端也一样?

    是的:)

    当您创建会话时,实际上是在发送 cookie。

    假设您正在使用 php 进行编码,并创建了一个会话,现在发生的情况是:将在服务器上创建一个文件(文件是在 php 中处理会话的默认方式,但您也可以更改它)和一个独特的id 还将在代表该会话的服务器上创建,假设您创建了一个会话,因此将创建一个名为 sjflsj3lrh324l2hjlskdjfl3hl.session 的文件,并且还将创建一个唯一的 id,例如:-sjflsj3lrh324l2hjlskdjfl3hl。

    现在,当您在会话中存储任何内容时,您实际上是将其存储在此文件中,并且当您向浏览器发送响应时,您还将在浏览器上发送一个 cookie,cookie 值将是这个 id。因此,下次您重新打开该网页时,浏览器将首先检查之前是否从该域收到过任何 cookie。如果是,则将其与请求一起发送,然后在服务器上 php 将检查请求是否包含任何 cookie。如果是这样,那么它将检查该名称文件是否存在,如果存在则意味着存在会话。然后它将打开该文件,并且保存在其中的所有变量值都将在 php 变量中恢复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2018-06-09
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 2017-12-03
      • 2012-11-17
      相关资源
      最近更新 更多