php抓取网页动态数据(为什么要获取SESSION值?(HTTP协议)叫用户代理)
优采云 发布时间: 2022-02-04 22:15php抓取网页动态数据(为什么要获取SESSION值?(HTTP协议)叫用户代理)
今天我们来实现一个提交话费的WEB程序,主要用于:代理电信公司话费支付。
第一步:获取登录页面的SESSION会话ID值。
为什么要获取 SESSION 值?
我们知道,当用户访问 网站 时,他们通常需要浏览很多页面。对于一个PHP构建的网站,用户在访问过程中需要执行很多动态页面(如:jsp、PHP、APS.NET等)。但是由于HTTP协议本身的特性,用户每次执行一个动态页面都需要重新与Web服务器建立连接。
并且由于WEB程序没有状态记忆的特点,本次连接无法获取上一次连接的状态。这样,用户在一个动态页面中分配了一个变量,却无法在另一个动态页面中获取该变量的值。例如,用户在负责登录的动态页面中设置了字符串 username = "wind",但在另一个动态页面中调用 username 却无法获取到值 "wind"。也就是说,不能在程序中设置全局变量。也就是说:每个动态脚本中定义的变量都是局部变量,只在这个脚本内有效。
Session解决方案是提供一种在动态脚本中定义全局变量的方法,使全局变量对同一个Session中的所有动态页面都有效。正如我们上面提到的,Session 并不是一个简单的时间概念。会话还包括特定的用户和服务器。因此,更详细地说,一个Session中定义的全局变量的范围是指该Session对应的用户访问的所有动态脚本。
并且因为HTTP协议是一种无状态的链接方式,也就是说服务端和客户端没有链接在一起。HTTP 是客户端和服务器端的请求和响应标准 (TCP)。客户端是最终用户,服务器是 网站。客户端通过浏览器、网络爬虫或其他工具,在指定端口(默认端口为80))向服务器发起HTTP请求。(我们称此客户端)称为用户代理(user agent ) 应答服务器存储(一些)资源,例如 HTML 文件和图像。(我们称这个应答服务器为源服务器)。
用户代理和源服务器之间可能有多个中介,例如代理、网关或隧道。尽管 TCP/IP 协议是 Internet 上最流行的应用程序,但 HTTP 协议并没有规定必须使用它以及(基于)它支持的层。事实上,HTTP 可以通过任何其他互联网协议或其他网络实现。HTTP 只假设(及其底层协议提供)可靠传输,任何可以提供这种保证的协议都可以被它使用。