安利:网络是怎样链接的

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

《HTTP权威指南》中列出了浏览器怎样经过HTTP显示位于远端服务器中的某个简单HTML资源的步骤:前端

(a)浏览器从 URL 中解析出服务器的主机名;面试

(b)浏览器将服务器的主机名转换成服务器的IP地址;segmentfault

(c)浏览器将端口号(若是有的话)从URL中解析出来;浏览器

(d)浏览器创建一条与 Web 服务器的 TCP 链接;缓存

(e)浏览器向服务器发送一条 HTTP 请求报文;性能优化

(f)服务器向浏览器回送一条 HTTP 响应报文;服务器

(g)关闭链接,浏览器显示文档。网络

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

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

网络链接路线图

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

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

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

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

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

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

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

主要关键词

让咱们用几张图来表明吧!

TCP、IP软件采用分层架构.png

(1)生成HTTP请求

浏览器如何解析网址:

Web浏览器解析URL的过程.png

请求消息实际的样子:

HTTP消息的格式.png

(2)向 DNS 服务器查询 Web 服务器的 IP 地址

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

找到目标DNS服务器.png

DNS服务器的基本工做.png

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

DNS服务器之间的查询操做.png

(3)委托协议栈发送消息

委托是如何完成的:

调用解析器时计算机内部的工做流程.png

数据经过相似管道的结构来流动.png

客户端和服务器之间收发数据操做的情形.png

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

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

其它回答

相关文章
相关标签/搜索