CSS调用PHP生成验证码图片时,PHP文件为何会自动执行?
验证码PHP文件执行逻辑解答
- 不是CSS直接触发PHP执行,本质是浏览器发起的HTTP请求触发的。当浏览器解析到CSS里的
background: url(captchaImageSource.php)规则时,会自动向服务器发送请求,获取这个URL对应的资源。 - 服务器收到请求后,因为请求的是
.php后缀的文件,会根据自身配置(比如Apache、Nginx的PHP解析规则),把这个文件交给PHP解释器处理。PHP解释器会执行文件里的所有代码——包括生成验证码图片、写入会话的逻辑,然后把执行结果(也就是验证码图片的二进制数据)返回给浏览器,浏览器就把这张图作为背景渲染出来。 - PHP不会主动自行调用任何函数,只有当服务器把HTTP请求转交给它处理时,它才会执行目标PHP文件里的代码。整个流程就是:浏览器请求资源→服务器调度PHP解释器→PHP执行代码返回图片。
内容的提问来源于stack exchange,提问作者Andy McRae
相关产品推荐
相关产品推荐

