熟悉后端语言

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

0_1482406270452_1360998916547.jpg
  • 用户端访问服务器端的html文件
    1. 通过本机配置好的DNS域名服务器地址寻找DNS服务器,将网站URL中的Web主机域名解析为Web服务器所在的Linux操作系统(Apache通常与Linux操作系统组合使用)中对应的IP地址。
    2. 通过HTTP协议(超文本传输协议)去连接上述IP地址的服务器系统,通过默认80端口(默认的端口是80,也有其他端口,输入URL时一般不用输入端口)请求Apache服务器上相应目录下的html文件(如index.htm)。
    3. Apache服务器收到用户的访问请求后,在它管理的文档目录中找到并打开相应的html文件(如index.htm),将文件内容响应给客户端浏览器(即用户)。
    4. 浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来(由于不同的浏览器对于代码的解读规则会不一样,所以不同浏览器对于相同的网页呈现的最终页面效果会有所差异)。
  • 用户端访问服务器端的php文件
    1. 该步与上面访问html静态网页是一样的,通过DNS服务器解析出相应的Web服务器的IP地址。
    2. 与上面访问html静态页面相似,不过最后请求的是Apache服务器上相应目录下的php文件,如index.php。
    3. Apache服务器本身不能处理php动态语言脚本文件,就寻找并委托PHP应用服务器来处理(服务器端事先得安装PHP应用服务器),Apache服务器将用户请求访问的php文件(如index.php)文件交给PHP应用服务器。
    4. PHP应用服务器接收php文件(如index.php),打开并解释php文件,最终翻译成html静态代码,再将html静态代码交还给Apache服务器,Apache服务器将接收到的html静态代码输出到客户端浏览器(即用户)。
    5. 与上面访问html静态页面相同,浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来。
  • 用户端访问服务器端的MySQL数据库
    如果用户需要对MySQL数据库中的数据进行操作,那么就需要在服务器端安装数据库管理软件MySQL服务器,用来存储和管理网站数据。由于Apache服务器是无法连接和操作MySQL服务器,所以还需要安装php应用服务器,这样Apache服务器就委托php应用服务器去连接和操作数据库,在对数据库中的数据进行管理的时候,一般都需要用到结构化查询语句,即SQL语句。
    1. 该步与上面访问php文件一样,通过DNS服务器解析出相应的Web服务器的IP地址。
    2. 与上面访问php文件一样,请求访问Apache服务器上相应目录下的php文件。
    3. 与上面访问php文件一样,PHP应用服务器接收Apache服务器的委托,收到相应的php文件。
    4. PHP应用服务器打开php文件,在php文件中通过对数据库连接的代码来连接本机或者网络上其他机器上的MySQL数据库,并在php程序中通过执行标准的SQL查询语句来获取数据库中的数据,再通过PHP应用服务器将数据生成html静态代码。
    5. 浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来。

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

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

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

  • IIS
    IIS服务是Windows产品自带的一种免费的Web服务器,安装配置简单,主要解析的是ASP程序代码,对于小型的、利用ASP编程的项目,可以采用其作为Web服务器。一般可以跟Apache整合起来使用。这种服务在配置过程中需要注意权限的问题。

  • Apache
    世界排名第一、免费开源的Web服务器软件,可以安装运行在绝大多数的计算机平台上,支持大多数语言开发的B/S结构软件。一般情况下Apache与其他的Web服务器整合使用,功能非常强大,尤其在静态页面处理速度上表现优异。

  • Tomcat
    Tomcat是Apache下的一个核心子项目,是目前使用量最大的免费的JAVA服务器。主要处理的是JSP页面和Servlet文件。Tomcat常常与Apache整合起来使用,Apache处理静态页面,比如Html页面,而Tomcat负责编译处理JSP页面与Servlet。在静态页面处理能力上,Tomcat不如Apache。由于Tomcat是开源免费、功能强大易用的,很多JAVA的初学者都喜欢用它。当然,也有不少中小企业用其与Apache整合做Web服务器。熟练掌握Tomcat的使用是非常必要的。可以这么说,熟练安装配置Tomcat是软件测试工程师的必备技能。

  • Jboss
    Jboss是RedHat的产品(RedHat于2006年收购了Jboss)。与Tomcat相比,Jboss要专业些。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范,本身不支持JSP/Servlet,需要与Tomcat集成才行。一般我们下载的都是这两个服务器的集成版。与Tomcat一样,Jboss也是开源免费的。Jboss在性能上的表现相对于单个Tomcat要好些。当然并非是绝对的,因为Tomcat做成集群,威力不容忽视。Jboss没有图形界面,也不需要安装,下载后解压,配置好环境变量后即可使用。

  • Resin
    Resin是CAUCHO公司的产品,它也是一个常用的、支持JSP/Servlet的引擎,速度非常快,不仅在表现在动态内容的处理,还包括静态页面的处理上,Tomcat、Jboss在静态页面上的处理能力明显不足,一般都需要跟Apache进行整合使用。而Resin可以单独使用,当然Resin也可以与Apache,IIS整合使用。

  • Weblogic
    WebLogic是BEA的产品,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应 用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的 开发、集成、部署和管理之中。与前面的几种小型Web服务器相比,更具专业性,但安装配置也更为复杂。WebLogic是一个商业的软件,使用是收费的,费用还挺贵的。

  • WebSphere
    WebSphere是IBM的产品,是因特网的基础架构软件,也就是我们通常所说的中间件。它使企业能够开发、部署和集成新一代电子商务应用(如 B2B 的电子交易),并且支持从简单的 Web 发布到企业级事务处理的商务应用。比WebLogic更专业,当然价格也更贵。一般部署在IBM专业的服务器上。

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文件内容并解析渲染呈现在浏览器窗口.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容