第1章 浏览器生成消息——探索浏览器内部
1.1 生成 HTTP 请求消息

从输入网址开始
网络是怎样连接的_户根勤
下面我们以访问 Web 服务器的情况为例来进行讲解
第一步工作就是对 URL 进行解析
接下来,浏览器会使用 HTTP 协议来访问 Web 服务器(HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤)HTTP 的主要方法post get
网络是怎样连接的_户根勤
生成 HTTP 请求消息
首先,请求消息的第一行称为请求行。这里的重点是最开头的方法 URI HTTP版本号
消息头
空行
消息体

我们的场景是在地址栏中输入网址并显示网页,因此这里应该使用 GET方法。点击超级链接的场景中也是使用 GET 方法。如果是表单,在 HTML源代码中会在表单的属性中指定使用哪种方法来发送请求,可能是 GET 也可能是 POST

1.2 向DNS服务器查询Web服务器的IP地址

生成 HTTP 消息之后,接下来我们需要委托操作系统将消息发送给Web 服务器。尽管浏览器能够解析网址并生成 HTTP 消息,但它本身并不具备将消息发送到网络中的功能,因此这一功能需要委托操作系统来实现
路由器:一种对包进行转发的设备
集线器:一种对包进行转发的设备,分为中继式集线器和交换式集线器两种
凡是通过集线器连接起来的所有设备都属于同一个子网
路由器中已经内置了集线器功能:这种路由器内部同时包含路由器和集线器两种设备,它们在里面已经连接起来了
网络是怎样连接的_户根勤
相当于 DNS 客户端的部分称为 DNS 解析器,或者简称解析器。解析器实际上是一段程序,它包含在操作系统的 Socket 库
DNS:Domain Name System,域名服务系统

1.3 全世界DNS服务器的大接力

来自客户端的查询消息包含以下 3 种信息
域名 Class 记录类型(A=IP MX=邮件服务器)
网络是怎样连接的_户根勤
还有根据 IP 地址反查域名的 PTR 类型,查询域名相关别名的 CNAME类型,查询 DNS 服务器 IP 地址的 NS 类型,以及查询域名属性信息的SOA 类型等
首先,DNS 服务器中的所有信息都是按照域名以分层次的结构来保存的
www.lab.glasscom.com.
根域存在但被省略、com域、glasscom域、lab域、www服务器
客户端计算机–>最近的 DNS 服务器(保存有根域的 DNS 服务器信息)——顺藤摸瓜找到目标 DNS 服务器
相比每次都从根域找起来说,缓存可以减少查询所需的时间+有效期并告知果是来自缓存中还是来自负责管理该域名的 DNS 服务器

1.4 委托协议栈发送消息

收发数据的操作分为若干个阶段,可以大致总结为以下 4 个(委托协议栈执行)
(1)创建套接字(创建套接字阶段)
(2)将管道连接到服务器端的套接字上(连接阶段)
(3)收发数据(通信阶段)
(4)断开管道并删除套接字(断开阶段)
网络是怎样连接的_户根勤

第2章 用电信号传输TCP/IP数据——探索协议栈和网卡
第3章 从网线到网络设备——探索集线器、交换机和路由器
第4章 通过接入网进入互联网内部——探索接入网和网络运营商
第5章 服务器端的局域网中有什么玄机
第6章 请求到达Web服务器,响应返回浏览器——短短几秒的“漫长旅程”迎来终点

相关文章: