Blogger Information
Blog 23
fans 1
comment 0
visits 16995
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
6月3日课件
布衣大汉的博客
Original
685 people have browsed it

# Lesson1: PHP 运行原理


## 1 常用术语


* http: 基于请求与响应机制的, 超文本传输协议

* html: 超文本标记语言

* php: 超文本预处理语言, 其实就是用生自动生成html文档的工具


* Apache/Nginx: Web服务器软件

* php.exe: php解释器


## 2 主机/客户端/服务器


* 主机: 本地主机(客户端),  远程主机(服务器)

* IP: 网络中的主机标识符, 有数字与字符串二种表示方法

* IP地址与主机名:如果是本地主机,IP是127.0.0.1,主机名(标识符为):localhost


* 客户端: 一台安装了浏览器或者其它可以访问网站软件的电脑

* 请求: 客户端发起的http请求(url请求),例如通过浏览器地址栏,或者终端命令

* 客户端和服务器可以是同一台电脑,此时,服务器的地址就是: 127.0.0.1/localhost


* 服务器: 一台安装了Web软件的电脑,就是一台可提供Web访问的服务器

* 响应: 通过指定的端口80,来响应客户端发送到过http请求

* 端口: 服务器可以端口对外提供的各种服务,例如http:80, ftp:21,email:25...


## 3 CGI协议/CGI脚本/Zend虚拟机


* Web服务器: 默认只能处理静态请求,如: html,遇到动态请求,如php,jsp...无能为力

* web应用程序: 这些动态请求,例如php,jsp..., 就是传说中的Web应用程序

* CGI: 通用网关接口, 是web服务器与web应用程序之间通信规范, 没错, 与http一样,也是协议

* CGI脚本: 其实就是 php程序,例如: index.php

* Zend虚拟机: 其实就是php程序的解释器, 可理解为php.exe,用来执行php程序

  

## 4 php运行流程


1. 客户通过浏览器发出http请求: index.php, 访问一个Web应用程序

2. web服务器接受到这个请求,发现是访问Web应用程序,于是通过CGI协议,转发给Zend虚拟机处理

3. CGI启动Zend虚拟机,对php脚本进行解析并执行,执行完毕输出html,并关闭Zend虚拟机

4. CGI将执行结果返回到web服务器, 并由它返回到客户端, 最终完成一个完整的http请求响应过程


## 5 提升自己: PHP-CGI 原理


每种web应用程序都有对应的CGI,php对应的是: php-cgi,它的执行流程大致如下:


1. 初始化php的各种变量

2. 调用并初始化: Zend虚拟机

3. 加载并解析: php.ini

4. 激活: Zend

  4.1 Zend加载php程序,做词法/语法分析

  4.2 编译生成:opcode,并执行

  4.3 输出结果

  4.4 关闭: Zend

5. 将结果返回: web 服务器


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments