动手
1. 初学者在本地安装 Apache 与 PHP。安装 xampp 套件即可。XAMPP 里面包含 Apache 和 PHP.windows 用户也可安装 WAMP,安装包体积会小一些。对于后端熟悉的同学可单独安装Apache 和 PHP。
2. 学习 xampp或者wamp 的简单配置使用,在本地启动 web 服务器,通过浏览器访问,通过浏览器打开本地 webserver 下的 php 文件,截图展示。
问题
1. 简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的?
1. 浏览器通过DNS服务器查找到域名对应的IP地址,找到物理主机
2. 浏览器通过HTTP/HTTPS等协议向web服务器发起请求
3. web服务器委托PHP应用服务器处理对PHP文件与数据库的请求,
PHP应用服务器找到对应的PHP文件,并通过PHP文件链接到对应的数据库,
PHP应用服务器再把得到的PHP文件与数据翻译成HTML代码返回给web服务器,
web服务器把返回的HTML代码与数据打包再响应给浏览器。
4. 浏览器接收web服务器响应后,接收并下载服务器端的HTML等静态代码,把代码渲染后生成页面呈现给用户
2. 常见的 WEB 服务器有哪些?
**1. IIS**IIS(Internet信息服务)英文InternetInformationServer的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性,强大,灵活。**2. Tomcat**Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。**3. Zeus**Zeus是一个运行于Unix下的非常优秀的Web服务器,据说性能超过Apache,是效率最高的Web服务器之一。**4. Nginx**Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。**5. Apache**Apache是世界使用排名第一的Web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。**6. Lighttpd**Lighttpd是由德国人JanKneschke领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的webserver环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。支持FastCGI,CGI,Auth,输出压缩(outputcompress),URL重写,Alias等重要功能。
3. 打开浏览器,在地址栏输入 http://jirengu.com 页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)
1. 浏览器通过先通过自身DNS缓存查找是否有相应IP,如果没有,则再去系统缓存查找,
按上述步骤依次按查找路由,ISP服务商,顶级域名服务器的DNS缓存,直到查询到域名jirengu.com对应的IP,找到web服务器nginx,如果最终没有找到相应IP,折返回502错误
成功找到则返回200
2. 浏览器通过HTTP协议向nginx服务器发送请求
3. nginx服务器委托PHP应用服务器来处理PHP文件和请求
4. PHP服务器处理PHP文件和请求,连接到相应的mysql数据库中获取数据
5. PHP服务器将数据生成HTML静态代码,并返回给nginx服务器
6. nginx服务器将响应发给浏览器,浏览器接收到后下载相应代码,并解析渲染成网页呈现给用户
7. 浏览器的下载顺序和渲染顺序是从上到下的,下载和渲染同时进行
先解析HTML代码,生成DOM树
再解析CSS生成CSSDOM树,将DOM树和CSSDOM树组合成渲染树
在渲染树的基础上布局,计算每个节点的几何结构,把每个节点绘制到屏幕上
解析并执行JavaScript
遇到嵌入资源,如:图片,视频等就并行下载
浏览器对同一域名下并行下载的数量有限制,通常把资源放置在不同域名下