|
|
1
20
会话cookie 记住http是 无国籍的 ,因此在服务器上跟踪会话,但是 客户机 必须在每个请求中标识自己。当您声明session_start()时, 您的浏览器通常正在设置cookie (php会话ID),然后通过发送每个请求的cookie值来标识自己。当使用具有会话值的请求调用脚本时,session_start()函数将尝试查找会话。要向自己证明这一点,请注意,清除cookie后会话将停止。如果cookie是一个“会话”cookie(临时cookie),那么即使您退出浏览器,也会有很多人死亡。您提到要命名会话。看看你的浏览器cookie,看看你能不能找到一个同名的cookie。 所有这些都意味着cookies在您的会话中扮演着积极的角色,因此如果 客户端不支持cookie ,那么您就不能像当前那样进行会话。至少对其他客户来说不是这样。将在服务器上创建会话;问题是客户端是否参与。 如果你的客户不能选择饼干,你必须找到 另一种方式 向服务器传递会话ID。这可以在 查询字符串 例如,尽管以这种方式发送会话ID被认为不那么私有。
具体的方法可能会因您的PHP版本而异,但它基本上只是一种配置。如果设置了正确的运行时选项,PHP将透明地将会话ID作为查询参数添加到页面上的链接中(当然,仅限同一个源)。您可以在 PHP website . 司扥噢特: 几年前,在试图实现会话时,这是一个常见的问题。cookie比较新,很多人因为担心安全问题而关闭浏览器中的cookie支持。 司扥噢特: @ Uberfuzzy 有一个很好的观点-使用curl或wget会话实际上是可能的。问题是它的自动化程度较低。用户可以将头值转储到文件中,并在将来的请求中使用这些值。curl有一些“cookie意识”标志,可以让您更容易地处理这个问题,但您仍然必须明确地做到这一点。同样,你也可以利用这个优势。如果您的备选客户机上有curl,那么您可以使用cookie意识标志自己进行调用。参考 curl manual . |
|
|
2
2
如果您调用session_start(),那么如果客户机不在现有的会话中,将创建一个会话。如果客户机不支持(或配置为忽略)用于维护会话的cookie或querystring机制,则每个请求都将创建一个新会话。 这可能会使您的会话存储机制因未使用的会话而膨胀。 如果您认为这可能是一个问题,那么最好只在会话中存储某些内容(例如用户登录或机器人不可能执行的其他操作)时调用session_start()。 |
|
|
3
2
只有在浏览器请求页面时才会创建PHP会话吗? 简短回答 是的。会话是专门为利用浏览器功能解决HTTP无状态问题而创建的。APC、memcached、db等不重要。这些只是会话的存储方法,并且会遇到相同的问题。 更长的答案 :创建会话的概念是为了说明HTTP是一种无状态协议,事实证明,对于各种软件应用程序来说,状态非常重要。 实现会话的最常见方法是使用cookie。PHP将会话ID发送到cookie中,浏览器将使用会话ID返回cookie。此ID用于在服务器上查找会话中存储的任何信息。php可以在URL的末尾包含和读取会话ID, 但是 这假设用户将通过单击包含生成的会话ID的链接导航到站点/应用程序上的页面。 在您的特定情况下,可以使用曲奇(可能还有wget)。卷曲 是 一个网络浏览器,只有一个没有图形用户界面。如果您使用的是命令行curl程序(而不是C库、PHP扩展等),请阅读以下选项
|
|
Ish Mahajan · WebTransport的浏览器兼容性 2 年前 |
|
|
Václav Procházka · 动态创建获取和解析脚本的顺序 2 年前 |
|
|
jani · 检查安装了哪些浏览器,然后在其桌面上创建快捷方式 2 年前 |
|
|
Italy Zia · 我收到一个“拒绝执行来自的脚本”http://localhost:3000/js/dashboard/dashboard.js',因为其MIME类型('text/plain')不可执行 2 年前 |
|
|
kakakali · 为什么appendChild()会丢失一些子项? 2 年前 |
|
|
StuartN · 使用默认搜索引擎的HTML搜索链接 2 年前 |
|
|
Vindicated · 如何访问当前未连接到的URL的本地存储? 2 年前 |