1.简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的?
实现动态网站过程.png
(客户输入URL,DNS解析URL得出IP地址,根据IP地址找出对应服务器)
用户在客户端(即是浏览器)的地址栏输入目的资源的URL(统一资源定位符),然后客户机会根据给出URL通过DNS解析器解析成IP地址,然后客户机根据IP地址寻找对应的服务器。
(客户机通过TCP/IP协议建立到web服务器的TCP链接)
(客户机向web服务器发送HTTP请求报文,请求服务器里资源的资源文档)
(web服务器接收到客户机的HTTP请求报文,然后向客户机发出HTTP响应报文)
(1).如果请求的是HTML文档,web服务器会将对应目录下相应的HTML文档打开,然后将文档的响应内容发送给客户机。
(2).如果请求的是PHP文件,那么web服务器自身是不能处理PHP动态语言脚本文件的,然后就会寻找并委托php应用服务器,php应用服务器会将web服务器请求的php文件解析成HTML静态代码,然后将HTML静态代码发送给web服务器,最后web服务器会将HTML静态代码发送客户机。
(3).如果请求的资源是访问数据库,则web服务器会通过php应用服务器去访问数据库。
详细:php应用服务器打开php文件,然后在php通过对数据库链接的代码来链接本机或者其他机器上的数据库,然后同标准SQL标准语言去处理和访问数据库,然后通过php应用服务器将php文件解析成静态HTML代码,最后发送给客户机。
(客户机解析HTML静态文档)
客户机在浏览器上解析HTML文档,并在屏幕上渲染画面结果,最终实现页面在客户机的呈现。
(客户机与服务器断开链接)
客户机与web服务器断开链接,web服务器等待下次请求。
2.常见的 WEB 服务器有哪些?
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器软件之一。它快速可靠,并且可以通过简单API扩充,将Python/Perl等解析器编译到服务器中。
Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。
特点:
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。
IIS是Internet Information Server的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性,强大,灵活
Lighttpd是一个德国人领导的开源Web服务器软件,具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能。
Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
3.打开浏览器,在地址栏输入http://jirengu.com页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)
输入URL.png
IP地址,80接口.png
然后客户端会打包HTTP请求
客户机通过TCP/IP协议建立到服务器的链接。
建立链接链接之后,客户机向nginx服务器发送HTTP请求报文,请求资源。
根据chrome浏览器控制台的反馈信息,客户机想nginx服务器请求的饥人谷网站资源文档数为32个,其中包括(gif,图片,文字,HTML文档,PHP文件,CSS文档,JS文档等等)
请求资源.png
4nginx服务器向客户机发送HTTP协议响应报文:
nginx服务器会根据响应报文内不同资源类型会做出不同的处理。
(1)如果是HTML文档,nginx服务器会将相应的HTML文档找到并打开,然后将文件发送给客户机。
(2)如果是PHP文档,nginx服务器是无法解析PHP文档,它会借助PHP应用服务器去将PHP文档解析成静态的HTML代码,然后将HTML代码发送给nginx服务器,最后nginx服务器将HTML文档打开发送给客户机。
(3)对于例如注册或登录等表单提交操作,涉及前后端的数据交换,则会访问mysql数据库,那么nginx服务通过php应用服务器对php文件的处理,间接操作数据库,从而最终生成一个包含数据库信息的html静态代码(同样,这里的静态代码是和前面的html文档有关联的组成部分而不是两个页面)
5.** 客户机浏览器加载解析文档,然后渲染文档。**
由客户端解释HTML文档,在客户端屏幕上渲染图形结果,最终实现网页在客户端的呈现
饥人谷页面.png
6客户机与服务器断开链接,服务器等待下次请求。
实战
1.基于xampp搭建Web服务器和完成相关配置
安装好xampp后,启动Web服务器和数据库服务器,但是默认端口已被占用,所以修改端口号
Apache.png
Web服务器的根目录在htdocs文件夹,所以根据文件路径访问php2.php
Apache服务器使用.png
版权归饥人谷peter和饥人谷所有,若有转载,请注明来源
作者:Sheldon_Yee
链接:https://www.jianshu.com/p/8da3e2dae61f
來源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。