访问网站的第一步

在浏览器里敲下一个网址、按回车,最先发生的是【0】。 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl)就交回 hit,否则把它记进缓存(

开始练习 →

同域名多次请求

打开一个网站要拉很多资源、都在同一个域名下,解析要做【0】。 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl)就交回 hit,否则把它记

开始练习 →

这轮请求发几次解析

访问同一域名的一串请求(同名 TTL 100,时刻见代码),真正向外发出去的解析有几次? 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl

开始练习 →

过了 TTL 又发一次

同名 TTL 100:第 0、10、120 秒各请求一次。向外发出去的解析几次? 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl)就交回

开始练习 →

补全:请求前先解析

补全 get:请求前先解析域名拿到 IP(缓存里有且没过期就复用),交回用到的 IP。 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl)

开始练习 →

补全:整轮发几次解析

补全 lookups:整轮请求里向外发出去的解析次数。 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl)就交回 hit,否则把它记进缓存

开始练习 →

补全:数复用了几次

补全 hits:整轮请求里复用了缓存几次(命中数)。 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl)就交回 hit,否则把它记进缓存(

开始练习 →

补全:第二次直接复用

补全 query:同一域名紧接着再访问一次(还没过 TTL),这次应当复用缓存。 贯穿本节的 TTL 缓存:query(cache, 名字, ip, now, ttl) 查一次——缓存里有且没过期(now-存入时刻 < ttl)就交回

开始练习 →

真机上怎么算解析对了

在受控容器里用自写 resolver 解析一个名字,算做对的标准是【0】。 (本机受控环境:只有本地 hosts 和自写 resolver,不碰公网。)

开始练习 →

从现象认解析的毛病

本机解析出问题,下面哪些现象和「解析层面」直接相关? A. 域名查不到任何记录 B. hosts 写错把名字指到了错的 IP C. 查到的 IP 是旧的(缓存没过期) D. 记录类型问错了(要 A 却查了 MX)

开始练习 →