访问网站的第一步
在浏览器里敲下一个网址、按回车,最先发生的是【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)