欢迎光临
我们一直在努力

《网络是怎样连接的》核心框架版—1

笔记介绍

这份笔记是《网络是怎样连接的》一书的核心框架版。内容严格按照书本章节整理,提炼每一章要解答的关键问题,并使用书中的知识点进行简洁、准确的回答。

笔记不包含多余的扩展和复杂格式,只保留最核心的知识点和流程,适合快速建立网络通信的整体知识框架,也可以作为后续深入精读的基础和索引。

后续我还会更新本书的深度精读版,对每一章的原理、细节和关键概念进行更详细的讲解。希望这份核心笔记能帮助大家更轻松、更系统地学习计算机网络。

 第一章:浏览器生成消息

1. 浏览器解析网址的完整流程是怎样的?

当我们在浏览器输入网址并按下回车后,浏览器首先会对 URL 进行解析,把一长串地址拆分成计算机能理解的各个部分:

  • 协议:http /https
  • 域名:如 www.example.com
  • 路径:如 /index.html
  • 参数:如?id=1

解析完成后,浏览器会判断访问类型:

  • 如果是网络地址(http/https),就进入网络访问流程:DNS 查询 → 建立连接 → 发送请求。
  • 如果是本地文件,则直接打开文件,不经过网络。

简单说:浏览器先 “读懂网址”,再委托操作系统去联网。


2. HTTP 请求消息的实际数据结构与格式是什么?

HTTP 请求消息是浏览器发给服务器的 “正式信件”,结构固定、清晰,一共三部分:

请求行:

格式:方法 + URI + HTTP         版本示例:   GET /index.html HTTP/1.1

请求头:

多行键值对,用来告诉服务器附加信息,例如:

  • Host:主机名
  • User-Agent:浏览器信息
  • Accept:能接收的数据类型格式:字段名:

空行 + 消息体

  • 必须有一个空行,分隔头部和内容。
  • GET 一般没有消息体。
  • POST 会在空行后放提交的数据。

完整格式:

请求行

头字段 1: 值

头字段 2: 值

(空行)

消息体


3. 浏览器向 DNS 服务器查询域名对应 IP 地址的具体机制是什么?

浏览器自己不直接发网络包,它只做一件事:调用操作系统提供的功能。

完整流程:

  • 浏览器需要域名对应的 IP,于是调用操作系统的 DNS 解析库。
  • 操作系统收到请求,向本机配置好的本地 DNS 服务器发送查询报文。
  • 本地 DNS 服务器查询后,把 IP 地址返回给操作系统。
  • 操作系统再把 IP 地址返回给浏览器。
  • 总结:浏览器只负责 “调用系统 API”,真正和 DNS 服务器通信的是操作系统。


    4. 上万台 DNS 服务器通过何种接力方式完成 IP 地址的查询?

    DNS 采用分层、递归、迭代的接力查询,像 “层层问路”。

    先分清两个核心概念:

    • 递归查询:帮我查到底,我只要最终答案。
    • 迭代查询:我不直接给答案,我告诉你下一站找谁。

    完整接力过程

    ① 本机 → 本地 DNS(递归查询)

    • 操作系统向本地 DNS 发送请求:“请帮我查到 www.xxx.com 的 IP,我只要结果。”

    • 本地 DNS 先查缓存,有就直接返回;没有就开始向上级问路。

    ② 本地 DNS → 根 DNS(迭代)

    • 根服务器:我不知道具体 IP,但我知道 .com 在哪里,给你顶级域 DNS 地址。

    ③ 本地 DNS → 顶级域 DNS(迭代)

    • 顶级域服务器:我不知道具体 IP,但我知道这个域名的权威 DNS 在哪里。

    ④ 本地 DNS → 权威 DNS(迭代)

    • 权威 DNS:这是该域名真正的 IP,直接返回。

    ⑤ 本地 DNS → 本机(返回结果)

    • 本地 DNS 缓存 IP,再把最终结果返回给操作系统和浏览器。

    一句话总结:本机只发起递归,本地 DNS 负责跑腿迭代,根→顶级域→权威一层层接力指路,最后拿到 IP。


    5. 浏览器将请求消息委托给操作系统发送至 Web 服务器的过程是怎样的?

    浏览器不直接碰网卡、不直接发包,所有网络操作都委托给操作系统完成。

    流程:

  • 浏览器生成完整的 HTTP 请求消息。
  • 浏览器作为应用程序,调用操作系统提供的 Socket 库。
  • Socket 库把请求交给操作系统内核的 TCP/IP 协议栈。
  • 协议栈依次完成:
    • 封装成 TCP 段
    • 再封装成 IP 包
    • 交给网卡驱动
    • 通过网卡发送到网络
  • 数据包经过路由器、网关,到达目标 Web 服务器。
  • 服务器逐层解包,拿到 HTTP 请求并处理。
  • 总结:浏览器只负责生成 HTTP 消息和调用 API,真正发包、建连接、走网络的全是操作系统。

    赞(0)
    未经允许不得转载:171主机测评 » 《网络是怎样连接的》核心框架版—1
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址