动手
学习 xampp或者wamp 的简单配置使用,在本地启动 web 服务器,通过浏览器访问,通过浏览器打开本地 webserver 下的 php 文件,截图展示。
问题
1. 简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的?
- 浏览器访问服务器端的html文件:
通过DNS服务器解析出相应的Web服务器的IP地址。
通过HTTP协议连接上述的服务器系统,请求相应目录下的html文件。
服务器接收到请求后,找到并打开相应的html文件,将文件内容响应给客户端浏览器。
浏览器收到响应后,接收并下载服务器端的静态html代码,通过解析、渲染,呈现出网页的内容。 - 浏览器访问服务端的php文件:
与访问html静态网页一样,通过DNS服务器解析出相应的Web服务器的IP地址。
与请求html静态页面类似,不过最终请求的是php文件。
由于Apache服务器本身不能处理php动态语言脚本,所以Apache服务器将用户请求访问的php文件交给PHP应用服务器。
PHP应用服务器接收php文件,打开并解释php文件,翻译成html静态代码,再将这些html静态代码返回给Apache服务器,服务器接收到html静态代码后返回给浏览器。
浏览器接收到服务器的响应后,接收下载html静态代码,解析、渲染呈现页面。 - 浏览器访问服务端的MySQL数据库部分:
通过DNS服务器解析出相应的Web服务器的IP地址。
与上面访问php文件一样,请求访问Apache服务器上相应目录下的php文件。
与上面访问php文件一样,PHP应用服务器接收到相应的php文件。
PHP应用服务器打开php文件,在php文件中通过执行标准的SQL查询语句来获取数据库中的数据,在通过PHP应用服务器生成html静态代码返回给服务器,服务器再返回给浏览器。
浏览器接收到服务器的响应后,接收下载html静态代码,解析、渲染呈现出页面。
2. 常见的 WEB 服务器有哪些?
- IIS:英文InternetInformationServer的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性、强大、灵活。
- Tomcat:由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发者的认可,成为目前比较流行的Web应用服务器。
- Zeus:是一个运行于Unix下的非诚优秀的Web服务器,据说性能超过Apache,是效率最高的Web服务器之一。
- Nginx:不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个
Mongrel进程可以极大提高Rails应用的并发能力。 - Apache:是世界排名第一的Web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其 进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
- Lighttpd:它是由得国人JanKneschke领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的webserver环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。支持FastCGI,CGI,Auth,输出压缩(outputcompress),URL重写,Alias等重要功能。
3. 打开浏览器,在地址栏输入 http://jirengu.com 页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)
- 浏览器查找域名相对应的IP地址,当然浏览器会先在自身DNS缓存记录中查找有无该地址的映射。如果没有找到,便会去系统缓存中寻找有无这个记录,没有的话,再到路由器中查找,还没有的话再到ISP服务商的DNS缓存中查找,最后没有则将从顶级域名服务器的根服务器开始递归查询,一层一层的查找DNS,知道找到对应的IP。
-
浏览器将请求发给Nginx,Nginx响应之后根据用户需求,通过PHP应用处理程序进行处理,若设计到用户登录及数据的增删改查,PHP会与数据库MySQL进行交互,最后服务器会返回一个静态的html文档。
服务器将静态的HTML文档发送到客户端(浏览器)
- 浏览器收到服务器响应后,开始下载HTML代码,通过解析和渲染,呈现出网页的页面。
- 浏览器的下载顺序和渲染顺序都是从上到下,下载和渲染同时进行
- 解析html代码,生成DOM树。
- 解析html中的CSS生成CSSOM树,把DOM CSSOM组合成渲染树
- 在渲染树的基础上布局,计算每个节点的几何结构,把每个节点绘制到屏幕上。
- 解析JavaScript,解析到的时候执行。
- 遇到关联资源图片、视频等元素时需要另外并行下载,同一域名下并行下载数量有限,通常是把资源放置在不同的域名下。
本文版权归本人和饥人谷所有,转载请注明来源。