动手题
1.学习 xampp或者wamp 的简单配置使用,在本地启动 web 服务器,通过浏览器访问,通过浏览器打开本地 webserver 下的 php 文件,截图展示。
问答
简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的?
1.用户端访问服务器端的html文件
①在浏览器中输入网址,由DNS服务器根据域名解析出相应主机的IP地址
②通过HTTP协议(超文本传输协议)去连接上述IP地址的服务器系统,通过默认80端口请求服务器上相应目录下的html文件(如index.htm)。
③服务器收到用户的访问请求后,在它管理的文档目录中找到并打开相应的html文件(如index.htm),将文件内容响应给客户端浏览器(即用户)
④浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来
2.用户端访问服务器端的php文件
①与上面第一步相同,通过DNS服务器解析出相应的web服务器的IP地址。
②与上面第二步相似,不过最后请求的是服务器上相应目录下的php文件(如index.php)交给PHP应用服务器。
③服务器本身不能处理php动态语言脚本文件,就寻找并委托PHP应用服务器来处理(服务器端实现得安装PHP应用服务器),服务器将用户请求访问的php文件(如index.php)文件交给PHP应用服务器。
④PHP应用服务器接收php文件(如index.php),打开并解释php文件,最终翻译成html静态代码,再将静态代码交还给服务器,服务器将接收到的html静态代码输出带客户端浏览器(即用户)。
⑤与上面第四步相同,浏览器收到web服务器的响应后,接受并下载服务器端的html静态代码,然后浏览器解读代码,最终将页面呈现出来。
3.用户端访问服务器端的MySQL数据库
如果用户需要对MySQL数据库中的数据进行操作,那么就需要在服务器端安装数据库管理软件MySQL服务器,用来存储和管理网站数据。由于Apache服务器是无法连接和操作MySQL服务器,所以还需要安装php应用服务器,这样Apache服务器就委托php应用服务器去连接和操作数据库,在对数据库中的数据进行管理的时候,一般都需要用到结构化查询语句,即SQL语句。
①跟上面第一步一样,通过DNS服务器解析出相应的web服务器的IP地址。
②跟上面访问php文件一样,请求访问Apache服务器上相应目录下的php文件。
③跟上面第三步一样,PHP应用服务器接收Apache服务器的委托,收到相应的php文件。
④PHP应用服务器打开php文件,在php文件中通过对数据库连接的代码来连接本机或者网络上其他机器上的MySQL数据库,并在php程序中通过执行标准的SQL查询语句来获取数据库中的数据,再通过PHP应用服务器将数据生成html静态代码。
⑤浏览器收到web服务器的响应后,接受并下载服务器端的html静态代码,然后浏览器解读代码,最终将页面呈现出来。
常见的 WEB 服务器有哪些?
Apache:是世界上用得最多的Web服务器,市场占有率60%左右,模块非常丰富,系统非常稳定,可移植性好,但比较耗资源.
Lighttpd:是一个德国人写的开源软件,目标是提供一个高性能的网站,它具有内存开销低,CPU占有率低,效能好以及模块丰富,Nginx的重要竞争对手之一.
Tomcat:由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
Nginx:不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
IIS: 英文InternetInformationServer的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性,强大,灵活。
Zeus: 是一个运行于Unix下的非常优秀的Web服务器
打开浏览器,在地址栏输入 http://jirengu.com页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)
1.用户输入http://jirengu.com,浏览器获取了该地址之后,通过DNS服务器解析成对应的IP地址,并根据IP地址找到饥人谷的web服务器nginx
2.首先查看浏览器缓存;若没有,查看系统缓存;若没有,则查看路由器缓存;若没有,则查看ISP服务商中的DNS缓存中查找;若还是没有,则将从顶级域名服务器的根服务器开始递归查询.
3.浏览器得到IP地址打包http报文并发送服务器请求其所需要的资源;浏览器与服务器通过TCP/IP协议(三次握手等)来连接
4.如果用户访问的是html文件,则直接将文件内容发送给用户;
如果用户访问服务器端的php文件,则需用php应用服务器接收并解析php文件,翻译成http文件交还给服务器,服务器再将其发送给浏览器;
如果用户需要访问服务器端的MySQL数据库,则需要php文件中的代码来连接数据库。通过SQL语句来获取数据库中的数据,再通过PHP应用服务器将数据生成html静态代码;
5.浏览器接收并下载nginx服务器传输的html静态代码,解析后将网页呈现给用户。