会话是由服务器还是语言处理的?

时间:2014-09-29 08:16:38

标签: php

我正在研究PHP,我知道如何管理会话。但我的问题是,会话与语言或Web服务器有关。谁负责执行 会话

4 个答案:

答案 0 :(得分:0)

会话令牌是生成的唯一标识符,并从服务器发送到客户端以标识当前的交互会话。客户端通常将令牌存储并作为HTTP cookie发送和/或将其作为GET或POST查询中的参数发送。使用会话令牌的原因是客户端只需处理标识符 - 所有会话数据都存储在服务器上(通常在客户端没有直接访问权限的数据库中)链接到该标识符。某些编程语言在命名其HTTP cookie时使用的名称示例包括JSESSIONID(JSP),PHPSESSID(PHP),CGISESSID(CGI)和ASPSESSIONID(ASP)。

答案 1 :(得分:0)

您通过使用session_start()启动会话来负责会话执行。

默认情况下,会话存储在Linux / Unix系统上的/ tmp中。您可以使用session_save_path()方法更改它。

另请参阅php.ini中的[Session]部分,它应该看起来像这样

; Handler used to store/retrieve data.
; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler
session.save_handler = files

正如您在默认情况下可以看到的那样,它存储为文件存储,建议将会话移动到缓存,即memcache。

编辑:

也许这篇文章可以帮助您:https://security.stackexchange.com/a/19054

答案 2 :(得分:0)

会话是两个组件的组合,即客户端会话 ID和服务器端会话数据。好吧,实际上它表现得像一个cookie,2个cookie互相回复。客户端可以将会话ID作为URL参数,cookie甚至HTTP头发送到服务器端。然后,服务器使用此会话ID查找匹配的会话数据以返回到请求客户端。

所以要直接回答你的问题,会话是服务器和客户端的一部分,你可以将其称为语言。但PHP处理执行

另外,您可以通过各种session functions调整会话行为。

答案 3 :(得分:-1)

会话由服务器生成,但它与语言耦合。因此,如果您查看浏览器资源,您会发现您的会话ID前缀为您正在使用的语言。