站点图标 起风网

熟悉后端语言

1. 简单描述下web 服务器、PHP、数据库、浏览器是如何实现动态网站的?

0_1482406270452_1360998916547.jpg

需要注意的是,访问php文件和MySQL数据库的区别是,一个访问了数据库,另一个没有访问数据库,所以在过程中有点差别。

2. 常见的 WEB 服务器有哪些?

常用的Web服务器有IIS、Apache、Tomcat、Jboss、Resin、Weblogic、WebSpher等。

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

  1. 输入一个url:http://jirengu.com ,浏览器缓存DNS记录;

  2. DNS解析:
    1、浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)
    2、操作系统检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
    3、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析
    4、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器(ISP的DNS),在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性
    5、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性
    6、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(jirengu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找jirengu.com域服务器,重复上面的动作,进行查询,直至找到jirengu.com主机
    7、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
    8、最终获取的域名对应IP为:121.40.201.213:80,此时浏览器发起向121.40.201.213:80的请求,端口为80,发送一条HTTP GET的报文,下面看下浏览器请求的信息:

    0_1482408350095_捕获.PNG
  3. 通过HTTP协议链接IP地址的服务器nginx,通过端口请求web服务器上相对应目录下的php文件;

  4. web服务器端委托php应用服务器处理接收请求的php文件;

  5. PHP应用服务器打开php文件,通过对数据库连接的代码来连接MySQL数据库,并在php程序中通6. 过执行标准的SQL查询语句来获取数据库中的数据,再通过PHP应用服务器将获取的数据生成html静态代码;

  6. 浏览器接收web服务器的响应后返回html文件内容并解析渲染呈现在浏览器窗口.

文章转载于:https://www.jianshu.com/p/b6b7db77ad44

原著是一个有趣的人,若有侵权,请通知删除

退出移动版