🔌 第一章 浏览器生成消息
📄 一句话概括

解析器的小传——全名 resolver,住址是操作系统的 Socket 库,营业范围一行字:域名进、IP 出;这是教材【网络术语其实很简单】专栏的第一篇。

📝 本节和前面几节的关系

1.2 节的主角出完了戏,专栏给它立个小传——术语的来历当故事读。

一、名字的来历

resolve=解析、解决;把【人话域名】解决成【机器话 IP】, 干这活的程序就叫 resolver——英语构词直白得可爱。

二、为什么值得专栏

它个头不大、职责单一,却是浏览器与世界之间的第一 translator; 没有它,1.2 节之后的整条路都走不起来。

三、动手 Demo:怪杰 Resolver 的一天

把解析器当一个人,一天只有一种业务:

for t, q, a in [('09:00','浏览器:这个名字是谁?','组查询,发 DNS'),
              ('09:00+','-','原地罚站等回信'),
              ('09:00++','-','回信到了,IP 抄进内存'),
              ('09:01','-','把 172.20.1.1 交还浏览器')]:
    print('%-8s %-18s %s' % (t, q, a))

实跑输出:

--------------------------------------------------------------------
怪杰 Resolver 的一天
--------------------------------------------------------------------
  把解析器当一个人来看,它的一天只有一种业务:

  钟点        有人来问                           它干的事
  ------------------------------------------------------------------------
  09:00       浏览器:www.lab.glb.com 是谁?     组查询消息,发往 DNS
  09:00+      -                                  原地罚站,等回信
  09:00++     -                                  回信到了,IP 抄进内存
  09:01       -                                  把 172.20.1.1 交还浏览器
  ------------------------------------------------------------------------

  全名 resolver(解析器),住址是操作系统的 Socket 库,
  营业范围一行字:域名进、IP 出。别的都不管。

  术语越简单的事越要有人干得好——它是本课第一个主角。

专栏风格:术语背后常有个朴素的形象——记住形象, 比背定义快得多。

30 秒实验

  1. 把 resolver、解析器、gethostbyname 三个词互相解释一遍。
  2. 查一查 Windows 上的 DNS 缓存命令(ipconfig /displaydns)。
  3. 给【套接字】也编一个类似的形象故事。

常见误区

  1. 把 resolver 当成 DNS 服务器——它是客户端侧的代理。
  2. 以为解析很神秘——营业范围就一行:域名进、IP 出。
自测三问(点开对答案) 1. resolver 的营业范围是什么? —— 域名进、IP 出。 2. 它住在哪? —— 操作系统的 Socket 库。 3. 它是服务器还是客户端部件? —— 客户端侧的代理程序。

相关笔记