虽然Web服务器在收到订单数据之后和销售系统一起对订单进行实际处理的操作很复杂,但其实浏览器和Web服务器之间的交互却很简单,概括如下。

(1)浏览器向Web服务器发送请求。

(2) Web服务器根据请求向浏览器发送响应。

因此,从这个层面上,也就是浏览器和Web服务器等网络应用程序进行交互的层面上来看,其工作方式应该还是比较容易理解的。这个层面上的交互和人类之间的对话非常相似,从这一点来说也更加容易理解。(尽管思路很简单,但实际编写这些应用程序并不容易,需要事无巨细地设计好所有的功能,还要编写大量的代码才能完成。)

要实现应用程序之间的交互,我们需要一个能够在浏览器和Web服务器之间传递请求和响应的机制。网络是由很多计算机等设备相互连接组成的,因此在通信的过程中需要确定正确的通信对象,并将请求和响应发送给它们。请求和响应在传递的过程中可能会丢失或损坏(请求和响应的本质都是电信号和光信号,这些信号可能会因受到杂音等的干扰而损坏。),因此这些情况也必须要考虑到。所以说,我们需要一种机制,无论遇到任何情况都能够将请求和响应准确无误地发送给对方。由于请求和响应都是由0和1组成的数字信息,所以可以说,我们需要的是一种能够将数字信息搬运到指定目的地的机制。

这种机制是由操作系统中的网络控制软件,以及交换机、路由器等设备分工合作来实现的,它的基本思路是将数字信息分割成一个一个的小块,然后装入一些被称为“包”(Packet)的容器中来运送。“包”这个词大家可能在用手机的时候经常会碰到,但在这里类似于邮政和快递中的概念。大家可以这样理解:包相当于信件或者包裹,而交换机和路由器则相当于邮局或快递公司的分拣处理区。包的头部存有目的地等控制信息,通过许多交换机和路由器的接力,就可以根据控制信息对这些包进行分拣,然后将它们一步一步地搬运到目的地。无论是家庭和公司里的局域网,还是外面的互联网,它们只是在规模上有所不同,基本的机制都是相同的。

前面介绍的这个负责搬运数字信息的机制,再加上浏览器和Web服务器这些网络应用程序,这两部分就组成了网络。也就是说,这两部分组合起来,就是网络的全貌。本书将通过6章的内容,带领大家逐一探索其中的各个环节。

第1章 Web浏览器

我们将首先探索浏览器的工作方式。大家可以认为我们的探索之旅是从在浏览器中输入网址(URL)开始的。例如,当我们输入下面这样的网址时,浏览器就会按照一定的规则去分析这个网址的含义,然后根据其含义生成请求消息。

http://www.lab.glasscom.com/sample1.html

在上面这个例子中,浏览器生成的请求消息表示“请给我sample1. html这一文件中储存的网页数据”,接着浏览器会将请求消息发送给Web服务器。

当然,浏览器并不会亲自负责数据的传送。传送消息是搬运数字信息的机制负责的工作,因此浏览器会委托它将数据发送出去。具体来说,就是委托操作系统中的网络控制软件将消息发送给服务器。第1章中,我们会探索到浏览器将数据委托出去为止。

第2章 协议栈、网卡

第2章我们将探索搬运数据的机制。其中最先出场的是协议栈(网络控制软件叫作协议栈)。这个软件会将从浏览器接收到的消息打包,然后加上目的地址等控制信息。如果拿邮局来比喻,就是把信装进信封,然后在信封上写上收信人的地址。这个软件还有其他一些功能,例如当发生通信错误时重新发送包,或者调节数据发送的速率等,或许我们可以把它当作一位帮我们寄信的小秘书。

接下来,协议栈会将包交给网卡(负责以太网或无线网络通信的硬件)。然后,网卡会将包转换为电信号并通过网线发送出去。这样一来,包就进入到网络之中了。

第3章 集线器、交换机、路由器

接下来出场的物品会根据接入互联网的形式不同而不同。客户端计算机可以通过家庭或公司的局域网接入互联网,也可以单独直接接入互联网。很遗憾,我们的探索之旅无法涵盖所有这些可能性,因此只能以现在最典型的场景为例,假设客户端计算机是连接到家庭或公司的局域网中,然后再通过ADSL和光纤到户(FTTH)等宽带线路接入互联网。

在这样的场景中,网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。路由器的后面就是互联网,网络运营商会负责将包送到目的地,就好像我们把信投到邮筒中之后,邮递员会负责把信送给收件人一样。

第4章 接入网、网络运营商

接下来,数据从用来接入互联网的路由器出发,进入了互联网的内部。互联网的入口线路称为接入网。一般来说,我们可以用电话线、ISDN、ADSL、有线电视、光线、专线等多种通信线路来接入互联网,这些通信线路统称为接入网。接入网连接到签约的网络运营商,并接入被称为接入点(Point of Presence, PoP)的设备。

接入点的实体是一台专为运营商设计的路由器,我们可以把它理解为离你家最近的邮局。从各个邮筒中收集来的信件会在邮局进行分拣,然后被送往全国甚至全世界,互联网也是一样,网络包首先通过接入网被发送到接入点,然后再从这里被发送到全国甚至全世界。接入点的后面就是互联网的骨干部分了。

在骨干网中存在很多运营商和大量的路由器,这些路由器相互连接,组成一张巨大的网,而我们的网络包就在其中经过若干路由器的接力,最终被发送到目标Web服务器上。其中的具体细节我们会在正文中进行讲解,但其实它的基本原理和家庭、公司中的路由器是相同的。也就是说,无论是在互联网中,还是在家庭、公司的局域网中,包都是以相同的方式传输的,这也是互联网的一大特征。

不过,运营商使用的路由器可跟我们家用的小型路由器不一样,它是一种可以连接几十根网线的高速大型路由器。在互联网的骨干部分,存在着大量的这种路由器,它们之间以复杂的形式连接起来,而网络包就在这些路由器之间穿行。
此外,路由器不但在规模上存在差异,在路由器间的连接方式上也存在差异。家庭和公司局域网中一般采用以太网线进行连接,而互联网中除了以太网线连接之外,还会使用比较古老的电话技术和最新的光通信技术来传送网络包。这一部分所使用的技术是当今网络中最热门的部分,可以说是最尖端技术的结晶。

第5章 防火墙、缓存服务器

通过骨干网之后,网络包最终到达了Web服务器所在的局域网中。接着,它会遇到防火墙,防火墙会对进入的包进行检查。大家可以把防火墙想象成门口的保安,他会检查所有进入的包,看看有没有危险的包混在里面。检查完之后,网络包接下来可能还会遇到缓存服务器。网页数据中有一部分是可以重复利用的,这些可以重复利用的数据就被保存在缓存服务器中。如果要访问的网页数据正好在缓存服务器中能够找到,那么就可以不用劳烦Web服务器,直接从缓存服务器读出数据。此外,在大型网站中,可能还会配备将消息分布到多台Web服务器上的负载均衡器,还有可能会使用通过分布在整个互联网中的缓存服务器来分发内容的服务。经过这些机制之后,网络包才会到达Web服务器。

第6章 Web服务器

当网络包到达Web服务器后,数据会被解包并还原为原始的请求消息,然后交给Web服务器程序。和客户端一样,这个操作也是由操作系统中的协议栈(网络控制软件)来完成的。接下来,Web服务器程序分析请求消息的含义,并按照其中的指示将数据装入响应消息中,然后发回给客户端。响应消息回到客户端的过程和之前我们介绍的过程正好相反。
当响应到达客户端之后,浏览器会从中读取出网页的数据并在屏幕上显示出来。到这里,访问Web服务器的一系列操作就全部完成了,我们的探索之旅也到达了终点。

网络是怎样连接的 - 探索之旅路线图相关推荐

  1. 计算机网络入门必读书籍 ——《网络是怎么连接的》

    网络是怎么连接的 探索之旅路线图 (1)浏览器向Web服务器发送请求. (2)Web服务器根据请求向浏览器发送响应. 浏览器和Web服务器之间传递请求和响应的机制: 由操作系统中的网络控制软件,以及交 ...

  2. 《网络是怎么连接的》读书笔记

    <网络是怎么连接的>读书笔记 文章目录 <网络是怎么连接的>读书笔记 前言 探索之旅路线图 本书涉及的主要关键词 第1章 浏览器生成消息--探索浏览器内部 第2章 用电信号传输 ...

  3. 浏览器向服务器发送的消息称为,网络是怎样连接之浏览器的探索之旅读书笔记(一)...

    照例是写在前面的话,今天在这里想和自己说一些话,希望未来的自己能够记住,就像我在简书的签名里写下的,"希望自己能记得当下写下那段文字的初心!",学习其实是一件非常严肃的事情,它容不 ...

  4. Linux 探索之旅 | 第四部分第二课:SSH 连接,安全快捷

    -- 作者 谢恩铭 转载请注明出处 内容简介 第四部分第二课:SSH连接,安全快捷 第四部分第三课预告:文件传输,潇洒同步 SSH连接,安全快捷 上一课是 Linux探索之旅 | 第四部分第一课:压缩 ...

  5. 老吴的 Xmind / 网络是怎样连接的 / 传输 TCP/IP 数据-探索协议栈和网卡

    一.简介 无惊无险,又到了周五,最近在看一些关于计算机网络的书,积累了一些笔记,分享给大家,助力嵌入式人才涨薪计划. 最近看的书比较多,我发现看书也是分好坏2个方面的. 好的地方是知识点比较全面,成体 ...

  6. Linux 探索之旅 | 第三部分第五课:延时执行,唯慢不破

    -- 作者 谢恩铭 转载请注明出处 内容简介 第三部分第五课:延时执行,唯慢不破 第三部分第六课预告:第三部分测验题 延时执行,唯慢不破 上一课 Linux探索之旅 | 第三部分第四课:后台运行及合并 ...

  7. 如何 接收消息服务器url,(读书笔记)网络是怎样连接的——浏览器生成消息...

    概览 本次探索之旅从用户在浏览器中输入网址(URL)开始. 生成HTTP请求消息 浏览器的工作会从对用户输入的网址进行解析开始.浏览器如何解析网址是我们的第一个看点.然后浏览器会根据网址的含义来生成请 ...

  8. Linux 探索之旅 | 开宗明义 + 第一部分第一课:什么是 Linux?

    -- 作者 谢恩铭 转载请注明出处 内容简介 开宗明义 第一部分第一课:什么是Linux? 第一部分第二课预告:下载Linux,免费的噢! 开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求 ...

  9. 《网络是怎样连接的》读书笔记1

    <网络是怎样连接的>读书笔记 1. 写在前面 今日看到一篇博文,作者说"写成博客的目的是防止自己走马观花,花了一堆时间还什么搜没学到",我自诩接受.学习新事物比较快,然 ...

最新文章

  1. 三流面试聊技术,二流面试聊框架,一流面试…
  2. 批处理-取年月日、时分秒毫秒
  3. boost::depth_first_search用法的测试程序
  4. java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)
  5. 金蝶显示服务器异常,金蝶提示云服务器异常
  6. 4-1MapReduce概述
  7. vue 使用了浏览器的刷新之后报错_Electron-vue运行之后出现了文件浏览器
  8. 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析
  9. Android 电容屏驱动
  10. oracle 创建用户且只有查看权限
  11. 结构体与对象的联系与区别
  12. javascript基础知识-数组
  13. 飞控计算机功能硬件设计,基于微机的某型无人机飞控系统的硬件设计及软件实现...
  14. Linux系统压力测试工具stress
  15. 国内外主流的三维GIS软件
  16. 相机意外断电导致视频保存成DAT文件,无法播放,如何修复视频文件?
  17. Day082 数据分析案例
  18. 【趣味案例】用Python来做一个屏幕录制工具
  19. C#中的toolStrip控件
  20. 关于ALEXA排名:流量越大越可靠

热门文章

  1. 可爱卡通幼儿英语课件PPT模板-优页文档
  2. 再次谈谈TCP的Nagle算法与TCP_CORK选项
  3. 使用Varnish为网站加速
  4. stp导入C4D,stp导入moi,犀牛、moi、C4D互导
  5. Makefile shell subst $(1)
  6. 《周末休闲吧》:教你如何玩车震——车震全程攻略!_周末休闲吧_百度空间...
  7. java 使用jacob插件打印excel
  8. 天猫主图和视频采集步骤及文件保存方法
  9. 大数据测试回放视频-小强测试内部学员技术分享
  10. 关于 GlobeImposter 的勒索病毒说明