书籍安利:网络是怎样连接的

有个经典的前端面试题:从输入 URL 到页面加载发生了什么?

《HTTP权威指南》中列出了浏览器怎样通过HTTP显示位于远端服务器中的某个简单HTML资源的步骤:
(a)浏览器从 URL 中解析出服务器的主机名;
(b)浏览器将服务器的主机名转换成服务器的IP地址;
(c)浏览器将端口号(如果有的话)从URL中解析出来;
(d)浏览器建立一条与 Web 服务器的 TCP 连接;
(e)浏览器向服务器发送一条 HTTP 请求报文;
(f)服务器向浏览器回送一条 HTTP 响应报文;
(g)关闭连接,浏览器显示文档。

这几个步骤其实是概括地很笼统抽象的,而在《网络是怎样连接的》这本书中,对几个步骤进行了详尽的扩充,它用图解的方式生动形象地介绍了网络是如何连接的。看完这本书,也就能自然而然地能在脑中浮现出前面那道经典面试题的过程了,当然,不止这些。

首先,书的开头就给我们展现了一副网络探索线路图:

书籍安利:网络是怎样连接的_第1张图片
网络连接路线图

网络 = 网络应用程序(如浏览器和Web服务器) + 负责搬运数字信息的机制。

【♠ Web浏览器】当我们输入这样的网址时:http://www.lab.glasscom.com/sample1.html, 浏览器就会按照一定的规则去分析这个网址的含义, 然后根据其含义生成请求消息。接着,浏览器会委托操作系统中的网络控制软件将消息数据发送出去。

【协议栈、网卡】接下来,协议栈(即网络控制软件)会将从浏览器接收到的消息打包,然后加上目的地址等控制信息之后,将包交给网卡(负责以太网或无线网络通信的硬件)。然后,网卡会将包转换为电信号并通过网线发送出去。

【集线器、交换机、路由器】网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。路由器的后面就是互联网,网络运营商会负责将包送到目的地。

【接入网、网络运营商】互联网的入口线路成为接入网,接入网连接到签约的网络运营商,并接入被成为接入点的设备。接入点的实体是一台专为运营商设计的路由器,接入点的后面就是互联网的骨干部分,存在很多运营商和大量的路由器,这些路由器相互连接,组成一张巨大的网, 而我们的网络包就在其中经过若干路由器的接力, 最终被发送到目标 Web 服务器上。

【防火墙、缓存服务器】通过骨干网之后,网络包最终到达了 Web 服务器所在的局域网中。接着,它会遇到防火墙,防火墙会对进入的包进行检查。检查完之后,网络包接下来可能还会遇到缓存服务器。网页数据中有一部分是可以重复利用的,这些可以重复利用的数据就被保存在缓存服务器中。

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

书籍安利:网络是怎样连接的_第2张图片
主要关键词

让我们用几张图来代表吧!

书籍安利:网络是怎样连接的_第3张图片
TCP、IP软件采用分层架构.png
(1)生成HTTP请求

浏览器如何解析网址:

书籍安利:网络是怎样连接的_第4张图片
Web浏览器解析URL的过程.png

请求消息实际的样子:


书籍安利:网络是怎样连接的_第5张图片
HTTP消息的格式.png
(2)向 DNS 服务器查询 Web 服务器的 IP 地址

浏览器如何向 DNS 服务器查询域名对应的 IP 地址:

书籍安利:网络是怎样连接的_第6张图片
找到目标DNS服务器.png
书籍安利:网络是怎样连接的_第7张图片
DNS服务器的基本工作.png

DNS 服务器进行接力的方法:

书籍安利:网络是怎样连接的_第8张图片
DNS服务器之间的查询操作.png
(3)委托协议栈发送消息

委托是如何完成的:

书籍安利:网络是怎样连接的_第9张图片
调用解析器时计算机内部的工作流程.png
书籍安利:网络是怎样连接的_第10张图片
数据通过类似管道的结构来流动.png
书籍安利:网络是怎样连接的_第11张图片
客户端和服务器之间收发数据操作的情形.png

心动的话,一起来学习鸭ᕦ(・ㅂ・)ᕤ,感觉得看上好几遍才能印象深刻呢~

ps:看完这本书,也能理解很多Web性能优化方面的知识呢,比如减少HTTP请求、使用CDN、减少DNS查询、避免重定向等等。

其它回答

  • 在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?
  • 前端经典面试题: 从输入URL到页面加载发生了什么?
  • 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

你可能感兴趣的:(书籍安利:网络是怎样连接的)