后端语言和web服务器的了解

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服务器
  • Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器软件之一。它快速可靠,并且可以通过简单API扩充,将Python/Perl等解析器编译到服务器中。

  • Nginx服务器
  • Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。

    特点:

    Nginx是一款面向性能设计的HTTP服务器,相较于Apachelighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。

  • IIS服务器
  • IIS是Internet Information Server的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性,强大,灵活

  • Lighttpd服务器
  • Lighttpd是一个德国人领导的开源Web服务器软件,具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能。

  • Tomcat服务器
  • Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

    3.打开浏览器,在地址栏输入http://jirengu.com页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)

  • 浏览器地址栏输入URL,然后DNS解析器会将URL解析成所访问的nginx服务器的IP地址,然后浏览器通过IP地址在Internet上找到对应的nginx服务器。
  • 输入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的安装和环境搭建

    安装好xampp后,启动Web服务器和数据库服务器,但是默认端口已被占用,所以修改端口号

    Apache.png

  • 通过浏览器访问Web服务器上的php文件

    Web服务器的根目录在htdocs文件夹,所以根据文件路径访问php2.php

    Apache服务器使用.png

    版权归饥人谷peter和饥人谷所有,若有转载,请注明来源

    作者:Sheldon_Yee

    链接:https://www.jianshu.com/p/8da3e2dae61f

    來源:

    著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 你可能感兴趣的:(后端语言和web服务器的了解)