B/S架构的优点以及深入web请求的复杂细节(1)

从表面上来说,客户端要想访问服务器资源,就在地址栏键入具体的URL,一按回车,就能在浏览器看到资源信息。但是这里面的门道儿也是很深的。

      随着web2.0时代的开始,网络架构已经从之前的C/S架构,逐渐已转变成了B/S架构,实际上B/S架构已经大大的简化了网络使用上的难度,这也为互联网带来了繁荣。

那么变换过来的B/S架构都有哪些优点呢?

     从两个大的方面来分析:客户端、服务器

 客户端方面:

         客户端使用了统一的浏览器,这样的话,浏览器一旦具有了统一性,就不再需要特殊的配置和网络连接,从而屏蔽使用服           务上的差异性。

 服务器方面:

         服务器要基于统一的HTTP,那么使用统一的HTTP,就可以降低开发难度,比如,基于HTTP的服务器也有很多,什么                   Tomcat啊,Apache呀、JBoss等等,这些服务器就可以直接拿过来使用,不需要开发者单独开发。

       综上所述,B/S网络架构不管对普通用户的使用还是对服务的开发都带来了好处。

B/S网络架构的简要分析:

       B/S网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,HTTP采用无状态(没有记忆功能)的短连接的通信方式,采用这种方式是为了能够同时服务更多的客户。现在这种B/S架构既要承载海量的用户请求,还能快速的响应,所以满足两个条件的话,B/S网络架构也会越来越复杂。

       当在地址栏键入一个URL的这时候,实际上底层做了很多操作,比如首先会请求DNS把这个域名解析为IP地址,然后根据这个IP地址在互联网上找到对应的服务器,然后在这个服务器上发起一个GET请求,有这个服务器决定返回默认的数据资源给用户。当数据返回给浏览器的时候,浏览器解析数据的时候若发现还有一些静态页面的话,会再次发送一个请求给服务器,而这些请求是在CDN上,那么SDN服务器就会处理这些请求。

       但是不管网络架构如何变化,始终有一些固定的原则需要遵守:

       1)网上所有的资源都要用一个URL来表示

             URL就是统一资源定位符,如果你要发布一个服务或者一个资源到网上,让别人访问到,那么就必须要有一个在世界上独一无二的URL。

       2)必须基于HTTP与服务器打交道;

       3)数据展示必须在浏览器中进行。当你获得数据资源后,必须在浏览器上才能恢复资源的容貌。

       

如何发起一个HTTP请求

这个问题简单又复杂,简单是因为在地址栏键入具体的URL,一按回车,就能发起一个请求,复杂是因为通过其他方式发送请求,或者自己组装一个符合HTTP的数据包。

浏览器在建立Socket连接之前,必须经过DNS解析成IP地址,并且该IP地址配合浏览器默认端口号80,就能在远程服务器建立Socket连接,浏览器呢会根据这个URL组装成一个get类型的HTTP请求,通过outputStream.write发送到目标服务器,服务器等待inputStream.read返回数据,最后断开这个连接。

本质上来说,发送一个HTTP请求过程就是建立一个Socket通信的过程。


猜你喜欢

转载自blog.csdn.net/CSDN_fanya/article/details/80247308