• 发送请求:浏览器根据用户输入的域名,运用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服务器的反馈,下载数据,进行解析渲染,并将最终页面呈现给用户。(特别地:虚拟主机或云服务器(均具有独立区间大小和IP地址,相当于本地主机)实际上就是各种服务器如php服务器,web服务器,mysql服务器等组合而成的,其又称虚拟服务器。) 1:web服务器可以包含应用程序服务器,如点击某个网页,跳到一个网页应用程序上。在虚拟主机中其对应web或root文件夹。 2:mysql服务器要在相应软件进行创建数据库和数据表并且管理如:phpMyadmin.  3:在本地电脑要先安装如下3个服务器并在使用时或外界访问时开启,ip:服务器口--相当于访问该主机的服务器(对应某网站(虚拟主机)的主页) 。。4:根据http://你的域名/admin.php可知,其实管理网站内容系统的phpcms等软件其实是一个存放在web服务器内的应用程序服务器,其模板发生变化时,web服务器所对应的文件内容和所关联的数据库(index.php,index,html)均发生改变。5:phpMyadmin上传后,输入网址/phpMyAdmin目录名/
  • 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树,组合二者并开始渲染页面。
    • 浏览器呈现页面:页面渲染完成,浏览器将饥人谷官网绘制出呈现给用户。

web 服务器、PHP、数据库、浏览器是如何实现动态网站的的更多相关文章

  1. Web服务器与数据库服务器分离 导入 Excel数据至数据库

    一般情况一般项目WEB服务器与数据库均部署在一台服务器,文件上传,数据导入在一台服务器完成.web服务器与数据库服务器分离,文件上传与数据导入将分布在两台服务器或多台服务器之间.本案例为两台服务器,具 ...

  2. 理解web服务器和数据库的负载均衡以及反向代理

    这里的“负载均衡”是指在网站建设中应该考虑的“负载均衡”.假设我们要搭建一个网站:aaa.me,我们使用的web服务器每秒能处理100条请求,而aaa.me这个网站最火的时候也只是每秒99条请求,那么 ...

  3. 使用SecureCRTP 连接生产环境的web服务器和数据库服务器

    一.使用SecureCRTP 连接生产环境的web服务器 首先,需要知道以下参数信息: 1.web服务器的ip地址     2.服务器的端口号    3.会话连接的用户名和密码   4.服务器的用户名 ...

  4. web服务器和数据库服务器分离的优势

    一般我们服务器都是分开的,网页服务器.数据服务器单独配置. web服务器不掉,那么就可以正常使用,data服务器掉了,那么web还可以坚持一会. 如果是web服务器掉了,那么就上不去了,不过有一些设置 ...

  5. web服务器和数据库服务器不在一台机器上

    把localhost改成数据库所在的IP就行了. $link=mysql_connect( "202.195.246.202 ", "root ", " ...

  6. ASP.NET CORE Web浏览器和Web服务器

    //web浏览器 //浏览器本质的原理:浏览器向服务器发请求,服务器把请求的内容返回给浏览器,然后浏览器把返回的内容绘制成一个图形化的界面 //Socket一种通讯交流的技术 //qq用户把信息通过s ...

  7. C#中使用Socket实现简单Web服务器

    上一篇博客中介绍了怎样使用socket访问web服务器.关键有两个: 熟悉Socket编程: 熟悉HTTP协议. 上一篇主要是通过socket来模拟浏览器向(任何)Web服务器发送(HTTP)请求,重 ...

  8. 转(Delphi 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON

    RTC作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择.下面我们做一个使用RTC web 服务器返回数据库JSON 的例子. ...

  9. ubuntu 12.04 安装 nginx+php+mysql web服务器

    Nginx 是一个轻量级,以占用系统资源少,运行效率而成为web服务器的后起之秀,国内现在很多大型网站都以使用nginx,包括腾讯.新浪等大型信息网站,还有淘宝网站使用的是nginx二次开发的web服 ...

随机推荐

  1. CP342-5做主站的profibus-dp组态应用

    1.CP342-5介绍 2.系统结构图 3.组态DP主站 4.组态DP从站 1)插入DP V0 slaves下的ET200M 2)设置属性 3)添加ET200M的其他模块 4)保存和编译 4.DP通信 ...

  2. python方法的延迟加载

    数据挖掘的过程中,数据进行处理是一重要的环节,我们往往会将其封装成一个方法,而有的时候这一个方法可能会被反复调用,每一次都对数据进行处理这将是一个很耗时耗资源的操纵,那么有没有办法将计算后的结果缓存起 ...

  3. Linux第三节整理 、增删改查、用户管理

    帮助+基本文件管理+用户管理 1.怎么查看命令帮助 ls --help man ls :查看命令/man 5 file:查看配置文件 2.基本文件管理,通过{查,建,删,改} 四个维度介绍了不同的命令 ...

  4. centos7 卸载home 扩大root空间

    =============================================== 2017/11/1_第1次修改                       ccb_warlock == ...

  5. mintUI配合vue2.0,webpack,vue-cli脚手架从零搭建

    步骤说明: 1.确保安装了vue-cli 安装:cnpm install vue-cli -g 验证版本:vue --version 2.生成项目模板: vue init webpack-simple ...

  6. NestedScrollingParent, NestedScrollingChild 详解

    之前听同事提起过 NestedScrollingView,但是一直没有时间去了解,最近一段时间比较空,才开始去了解.先点开,看 NestedScrollingView 源码: public class ...

  7. 解决myeclipse部署按钮不能点

    找到MyEclipse的工作路径(一般点开myeclipse是会显示),然后到这个目录中去“\.metadata\.plugins\org.eclipse.core.runtime\.settings ...

  8. eclipse启动tomcat不能访问解决

    tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的tomcat,在 ...

  9. [SharePoint Online]SharePoint Designer无法打开世纪互联版sp online站点得解决方法,报错信息:请安装更新后再重新打开

    现象描述: 装了个x64版SharePoint designer 2013, 没有装SP1,在打开国际版得office 365 online得时候完全没有问题,但是在打开世纪互联版得时候就打不开,让安 ...

  10. MicroPython支持的开发板:高性能、低成本创客首选

    Python的开放.简洁.黏合正符合了现发展阶段对大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢经过了太漫 ...