简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的?
- 首先在浏览器中输入域名
- 浏览器通过DNS查找域名的IP地址,优先通过缓存查找,然后是递归查询
- 浏览器给web服务器发送一个HTTP请求、包含服务器需要的信息(get/post、域名、cookie)
- 通过TCP协议浏览器与服务器产生联系(三次握手)
- Web服务器将用户请求的php文件交给php应用服务器处理(Web服务器本身不能处理php动态语言文件);
- php应用服务器接收、打开并解释php文件,在php文件中通过对数据库的连接代码连接本机或其他机器上的MySQL数据库,在php中执行SQL查询语句获得数据,php应用服务器将获得的数据生成html静态代码;
- php应用服务器将生成的html静态代码返回Web服务器,Web服务器通过TCP协议将html
静态代码传给浏览器; - 浏览器解析接收到的代码,开始渲染页面并呈献给用户。
页面运作流程
TCP的三次握手与四次分手
动态网站的访问过程
2.常见的 WEB 服务器有哪些?
目前最主流的三个Web服务器是
- Apache
Apache是世界使用排名第一的Web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。 - Nginx
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。 - IIS
IIS(Internet信息服务)英文InternetInformationServer的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性,强大,灵活。
3.打开浏览器,在地址栏输入 http://jirengu.com 页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)
- 通过DNS服务器将域名转换成对应的IP地址
- 浏览器与服务器之间根据TCP协议构成连接
- 请求访问Nginx服务器上相应目录下的php文件。
- Nginx服务器本身不能处理php动态语言脚本文件,就寻找并委托PHP应用服务器来处理
- PHP应用服务器打开php文件,在php文件中通过对数据库连接的代码来连接本机或者网络上其他机器上的MySQL数据库,并在php程序中通过执行标准的SQL查询语句来获取数据库中的数据,再通过PHP应用服务器将数据生成html静态代码,然后传递给Nginx服务器
- 浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来。
- 浏览器拿到请求,进行页面渲染
- DOM树,CSS树,JavaScript
参考
创建服务器