美文网首页编程知识点饥人谷技术博客
日夜谈——后端语言和web服务器的了解

日夜谈——后端语言和web服务器的了解

作者: Sheldon_Yee | 来源:发表于2016-12-31 23:50 被阅读913次
    24
    1.简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的?
    实现动态网站过程.png
    1. (客户输入URL,DNS解析URL得出IP地址,根据IP地址找出对应服务器)
      用户在客户端(即是浏览器)的地址栏输入目的资源的URL(统一资源定位符),然后客户机会根据给出URL通过DNS解析器解析成IP地址,然后客户机根据IP地址寻找对应的服务器。
    2. (客户机通过TCP/IP协议建立到web服务器的TCP链接)
    3. (客户机向web服务器发送HTTP请求报文,请求服务器里资源的资源文档)
    4. (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代码,最后发送给客户机。

    1. (客户机解析HTML静态文档)
      客户机在浏览器上解析HTML文档,并在屏幕上渲染画面结果,最终实现页面在客户机的呈现。
    2. (客户机与服务器断开链接)
      客户机与web服务器断开链接,web服务器等待下次请求。
    2.常见的 WEB 服务器有哪些?

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

    <li>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。

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

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

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

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

    <li>浏览器地址栏输入URL,然后DNS解析器会将URL解析成所访问的nginx服务器的IP地址,然后浏览器通过IP地址在Internet上找到对应的nginx服务器。

    输入URL.png IP地址,80接口.png
    1. 然后客户端会打包HTTP请求

    2. 客户机通过TCP/IP协议建立到服务器的链接。

    3. 建立链接链接之后,客户机向nginx服务器发送HTTP请求报文,请求资源。
      根据chrome浏览器控制台的反馈信息,客户机想nginx服务器请求的饥人谷网站资源文档数为32个,其中包括(gif,图片,文字,HTML文档,PHP文件,CSS文档,JS文档等等)

    请求资源.png

    4 nginx服务器向客户机发送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服务器和完成相关配置

    <li>xampp的安装和环境搭建

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

    Apache.png

    <li>通过浏览器访问Web服务器上的php文件

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

    Apache服务器使用.png

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

    感谢瓜子观众:


    gaki24

    相关文章

      网友评论

        本文标题:日夜谈——后端语言和web服务器的了解

        本文链接:https://www.haomeiwen.com/subject/iikmvttx.html