问答题
简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的
- web 服务器:
- 通过本机配置好的DNS域名服务器地址寻找DNS服务器,将网站URL中的Web主机域名解析为Web服务器中对应的IP地址。
- 通过HTTP协议,去连接上述IP地址的服务器系统,通过默认80端口,请求Apache服务器上相应目录下的html文件(如index.htm)。
- Apache服务器收到用户的访问请求后,找到并打开相应的html文件,将文件内容响应给客户端浏览器
- 浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来
- PHP:
- 同上一步,解析出相应的ip地址
- 同上面第二步类似,请求对应的php文件
- Apache服务器本身不能处理php动态语言脚本文件,Apache服务器将用户请求访问的php文件交给PHP应用服务器。
- PHP应用服务器接收php文件,解释php文件,翻译成html静态代码,再将html静态代码交还给Apache服务器,Apache服务器将接收到的html静态代码输出给用户
- 同上面最后一步一样,浏览器接收并下载html静态代码,解读代码,最终将网页呈现出来
- 数据库:
- 同上一步,解析出相应的ip地址
- 同上面第二步一样,请求对应的php文件
- 同上面第三步一样,PHP应用服务器接收对应php文件
- 打开php文件,通过对数据库连接的代码来连接本机或者网络上其他机器上的MySQL数据库,并在php程序中通过执行标准的SQL查询语句来获取数据库中的数据,再通过PHP应用服务器将数据生成html静态代码。
- 同上面最后一步一样,浏览器接收并下载html静态代码,解读代码,最终将网页呈现出来
常见的 WEB 服务器有哪些?
Apache是世界使用排名第一的web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。它源于NCSAhttpd服务器,特点是简单、速度快、性能稳定,并可做代理服务器使用;
IIS是英文名Internet Information Server的缩写,是微软公司主推的服务器;
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
Lighttpt是基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。Lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。
Zeus是一个运行于Unix下的非常优秀的Web Server,据说性能超过Apache,是效率最高的Web Server之一。
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。特定是 技术先进、性能稳定,而且免费。
打开浏览器,在地址栏输入 http://jirengu.com 页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)
- 过程:
- 用户输入
http://jirengu.com
,浏览器获取域名,通过url解析出对应的服务器ip地址。 - 浏览器将用户输入的请求信息打包给nginx
- nginx分析用户信息,寻找对应的文件
- 如果对应的文件有php文件,nginx将其发给php服务器处理,在处理php文件时链接数据库并获取数据,然后翻译成html静态代码交给nginx
- 浏览器接收并下载nginx传输的html静态代码,最后浏览器解析结果并将网页呈现出来
版权归吴秀芳和饥人谷所有,若有转载,请注明来源