使用保持活动连接(HTTP 1.1)在PHP中创建类似ftp的会话

|| 我正在寻找一种跟踪HTTP 1.1连接的方法,以便在请求中保持活动状态,以便获得类似ftp的会话。 这个想法将是在第一个请求时进行身份验证,然后在套接字仍处于打开状态时保持身份验证有效(具有HTTP 1.1保持活动功能)。 直到这里,我一直在寻找这样的解决方案,但收效甚微。 我正在寻找信息,例如: 在PHP中可以从Apache那里获得套接字ID吗? 是否有一个模块可以向HTTP 1.1连接添加信息(可以在PHP中使用)? 还有其他想法吗?     
已邀请:
你不能那样做。 我不认为Apache(或其他任何Web服务器)将套接字ID公开给PHP脚本。但是可能使用
$_SERVER[\'REMOTE_ADDR\']
$_SERVER[\'REMOTE_PORT\']
唯一标识一个连接,因为同一个客户端无法同时从同一个临时端口启动到同一个服务器的两个连接。 但是,即使您这样做,保持活动状态会话的时间也不会足够长,无法像FTP那样进行有意义的人机交互。大多数保持活动会话会在5-15秒后自动终止,具体取决于您的Web服务器的配置。您也许可以对此进行调整,但是保持连接的生存期更长不是一个好主意,尤其是在将Apache与mod_php结合使用时,因为持久的连接会垄断服务器资源,而以其他用户为代价。此外,计算机和路由器倾向于重用临时端口,因此不能保证您与同一用户交谈。如果考虑到人们每天使用的所有代理和反向代理,事情就变得更加复杂。 只需使用会话和/或Cookie。他们总是工作。     
如果您不仅限于Apache,并且可以简单地运行php脚本,我想您可以做到。 http://php.net/manual/zh/book.sockets.php PHP允许您打开特定的端口并对其进行低级读写。这样,您可以编写任何现有或自己的协议。 对于这种特殊情况,您可以让Apache在非HTTP端口上运行,并从自定义PHP脚本监听HTTP端口。然后,您将在连接时验证请求;为用户添加一个自定义标头(称为myauth),然后将请求转发给apache。确保在读取原始http请求时过滤出myauth标头。     

要回复问题请先登录注册