网络的全貌

首先咱们来看一下浏览器访问Web服务器这一过程的全貌.访问Web服务器并显示网页这一过程包含了浏览器和Web服务器之间的一系列交互,主要是下面这样的交互.html

  1. 浏览器向Web服务器发送请求.
  2. Web服务器根据请求向浏览器发送响应.

要实现应用程序之间的交互,咱们须要一个可以在浏览器和Web服务器之间传递请求和响应的机制.网络是由不少计算机等设备相互链接组成的,所以在通讯过程当中须要肯定正确的通讯对象,并将请求和响应发送给它们.请求和响应在传递的过程当中可能会丢失和损坏,所以这些状况也要考虑到.segmentfault

因此说,咱们须要一种机制,不管遇到任何状况都可以将请求和响应准确无误地发送给对方.因为请求和响应都是由0和1组成的数字信息,因此能够说,咱们须要的是一种可以将数字信息搬运到指定目的地的机制.浏览器

这种机制是由操做系统中的网络控制软件,以及交换机,路由器等设备分工合做来实现的,它的基本思路是将数字信息分割成一个一个的小块,而后装入一些被称为"包"的容器中来运送.缓存

整体上分为以下六个环节.服务器

Web浏览器

咱们的探索之旅是从浏览器中输入网址(URL)开始的.例如,当咱们输入下面这样的网址时,浏览器就会按照必定的规则去分析这个网址的含义,而后根据其含义生成请求消息.网络

http://segmentfault.com/zuckjet/index.html

上面这个例子中,浏览器生成的消息表示"请给我index.html这一文件中存储的网页数据",接着浏览器会将请求发送给 Web服务器.
固然浏览器并不会亲自负责数据的传送.传送消息是搬运数字信息的机制负责的工做,所以浏览器会委托它将数据发送出去.操作系统

协议栈、网卡

协议栈(网络控制软件叫作协议栈)会将从浏览器接收到的消息打包,而后加上目的地址等控制信息.接下来,协议栈会将包交给网卡(负责以太网或无线网络通讯的硬件).而后,网卡会将包转换为电信号并经过网线发送出去.这样一来,包就进入到网络中了.设计

集线器、交换机、路由器

网卡发送的包会通过交换机等设备,到达用来接入互联网的路由器.路由器的后面就是互联网,网络运营商会负责将包送到目的地,就好像咱们把信投到邮筒中以后,邮递员会负责把信送给收件人同样.code

接入网、网络运营商

接下来,数据从用来接入互联网的路由器出发,进入了互联网的内部.互联网的入口线路称为接入网.通常来讲咱们能够用电话线,ISDN,ADSL,有线电视,光线,专线等多种通讯线路来接入互联网,这些通讯线路统称为接入网.接入网链接到签约的网络运营商,并接入被称为接入点的设备.
接入点的实体是一台专为运营商设计的路由器,咱们能够把它理解为离你家最近的邮局.接入点的后面就是互联网的骨干部分了.htm

防火墙,缓存服务器

经过骨干网以后,网络包最终到达了Web服务器所在的局域网中.接着,它会遇到防火墙,防火墙会对进入的包进行检查.检查完以后,网络包接下来可能还会遇到缓存服务器.若是要访问的网页数据正好在缓存服务器中可以找到,那么就能够不用劳烦Web服务器,直接从缓存服务器读出数据.

Web服务器

当网络包到达Web服务器后,数据会被解包并还原为原始的请求消息,而后交给Web服务器程序.和客户端同样,这个操做也是由操做系统中的协议栈来完成的.接下来Web服务器程序分析请求消息的含义,并按照其中的指示将数据装入响应消息中,而后发回给客户端.