web 服务器、PHP、数据库、浏览器是如何实现动态网站的
- 发送请求:浏览器根据用户输入的域名,运用DNS缓存或请求本地DNS服务器解析等获得对应IP地址,使用HTTP协议发送请求报文(含请求内容、浏览器信息、本地缓存、cookie等)
-
返回数据:web服务器接收到请求,会去寻找对应文件,找到后会反馈给浏览器说请求的内容已经找到。
- html文件:web服务器在自己目录下寻找,找到后会直接反馈给浏览器;
- PHP文件:web服务器会现在自己目录下找PHP文件,找到后它会发给PHP服务器帮忙解析,PHP服务器会将PHP文件翻译成html代码返回给web服务器;
- 数据操作:如果请求中涉及到数据库的操作的话,同样,web服务器将PHP文件发给PHP服务器,PHP服务器对文件中需要数据库信息的部分请求MySQL数据库提供对应数据,之后PHP服务器再将反馈的数据翻译成html代码发送给web服务器。
-
渲染呈现:浏览器根据web服务器的反馈,下载数据,进行解析渲染,并将最终页面呈现给用户。
0_1461902623997_用户 服务器.png
常见的 WEB 服务器
- Apache服务器:A pache(哈哈 一个补丁 我乍一听还以为是直升机)使用广泛,开放源代码,支持多个平台,相比其他服务器占的内存较大,是重量级产品。
- Microsoft IIS 服务器:微软的,包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,要使用它需要购买对应的商业window server操作系统。
- Nginx服务器:(发音同engine x)俄罗斯的一个站点开发的,相比于Apache服务器,Nginx占用内存小且较稳定。
-
Tomcat服务器:(哈哈 汤姆猫服务器)也是开放源代码的,运行servlet和JSP Web应用软件基于Java,比绝大多数的商业用的软件服务器要好。
0_1461902581006_upload-a22468fe-6f25-47a4-95d4-943af7da69f3
打开浏览器,在地址栏输入url 到页面展现,整个过程发生了什么?
- 用户输入网址:用户输入网址,包含协议和域名
- 浏览器获得IP地址:浏览器先找自身缓存看是否有记录,没有的话再找操作系统缓存,再没有就请求本地DNS服务器帮忙,本地DNS再找不到再一层层往上;最终,浏览器获得了对应的IP地址。
- 浏览器发送请求:浏览器根据HTTP协议,给对应IP地址的主机发送请求报文,默认端口为80,报文含请求内容、浏览器信息、本地缓存、cookie等等信息。
- web服务器接收请求、寻找文件:Nginx服务器接收到请求,在自己目录下开始寻找对应php文件
- PHP服务器翻译php文件:找到后将文件发给PHP服务器,PHP服务器打开php文件进行翻译,如果碰到需要数据库对应数据的部分,PHP服务器就用标准的SQL查询语句来获取数据库中的数据。
- MySQL数据库提供数据:接收PHP服务器指令,会反馈对应数据给PHP服务器。
- PHP服务器完成翻译发给web服务器:PHP服务器将php文件翻译生成静态html代码,并发送给web服务器。
- web服务器接收并通知浏览器:web服务器接收PHP服务器的html代码,并反馈给浏览器让浏览器开始下载。
- 浏览器下载:浏览器收到web服务器通知,开始下载请求的所有资源。
- 浏览器解析渲染:浏览器边下载边解析,并开始生成html树和css树,组合二者并开始渲染页面。
- 浏览器呈现页面:页面渲染完成,浏览器将饥人谷官网绘制出呈现给用户。
网友评论