Files
examination/topics/networking/cdn/fill_blank.json
T
wonder df63692a18
Deploy Examination / deploy (push) Successful in 31s
feat: add 180 questions (90 sc + 90 fb) for networking subtopics
Cover 9 subtopics from the computer networking documentation:
- http-handshake: TCP/TLS/HTTP2/HTTP3 handshakes
- http-connection-cost: connection resource overhead & million concurrency
- connection-pooling: pool reuse, HTTP/1.1 vs HTTP/2
- http-keepalive: Keep-Alive principle, head-of-line blocking
- keepalive-scenarios: when to enable/disable Keep-Alive
- domain-sharding: HTTP/1.1 hack, HTTP/2 obsolescence
- cdn: edge nodes, caching, DDoS protection
- cors: same-origin policy, preflight requests
- go-build-strip: -s -w flags, binary size optimization
2026-09-02 21:33:09 +08:00

201 lines
8.4 KiB
JSON

{
"topic": "cdn",
"type": "fill_blank",
"schema_version": "1.0.0",
"generated": "2026-09-02T21:20:00+08:00",
"questions": [
{
"id": "fb-001",
"type": "fill_blank",
"question": "CDN 的 ____ 是部署在全球各地的缓存服务器,用户访问时会就近获取资源,大幅降低网络延迟。",
"answer": [
"边缘节点"
],
"answer_rule": "any",
"difficulty": 1,
"tags": [
"CDN",
"边缘节点",
"就近访问"
],
"explanation": "边缘节点(Edge Node)是 CDN 网络中最靠近用户的服务器节点,分布在全球各大城市的数据中心。当用户请求资源时,CDN 会将其引导至地理位置或网络距离最近的边缘节点,从该节点的缓存中直接返回资源,避免了跨地域长距离传输带来的延迟。",
"source": null,
"related": []
},
{
"id": "fb-002",
"type": "fill_blank",
"question": "当边缘节点的缓存中没有用户请求的资源时,会向 ____ 拉取源文件,这个过程称为回源。",
"answer": [
"源站",
"源服务器",
"源站服务器"
],
"answer_rule": "any",
"difficulty": 1,
"tags": [
"CDN",
"回源",
"源站"
],
"explanation": "回源(Origin Pull)是 CDN 的核心机制之一。当边缘节点缓存未命中(Cache Miss)时,节点会代替用户向源站(Origin Server)发起请求获取原始资源,获取后缓存到本地,再返回给用户。后续相同资源的请求就可以直接从边缘节点缓存返回,不再需要回源。",
"source": null,
"related": []
},
{
"id": "fb-003",
"type": "fill_blank",
"question": "CDN 使用 ____ 技术,根据用户的来源 IP 地址和地理位置信息,将请求解析到距离最近的边缘节点。",
"answer": [
"智能DNS",
"智能DNS解析",
"全局负载均衡"
],
"answer_rule": "any",
"difficulty": 2,
"tags": [
"CDN",
"智能DNS",
"地理位置解析"
],
"explanation": "智能 DNS 是 CDN 的流量调度核心。它不同于传统 DNS 只返回固定的 IP 地址,而是根据请求来源 IP 的地理位置、网络运营商、节点负载等多种因素,动态返回最优边缘节点的 IP 地址。这样用户就被引导到最近、最快的节点,实现就近访问。",
"source": null,
"related": []
},
{
"id": "fb-004",
"type": "fill_blank",
"question": "CDN 最典型的应用场景是 ____ 加速,即将图片、CSS、JS、视频等不经常变化的文件缓存到边缘节点。",
"answer": [
"静态资源"
],
"answer_rule": "any",
"difficulty": 1,
"tags": [
"CDN",
"静态资源",
"加速"
],
"explanation": "静态资源加速是 CDN 最基础也是最广泛的应用。图片、样式表、JavaScript 文件、字体、视频等静态资源具有可缓存、不随请求变化的特点,天然适合 CDN 缓存。通过将这些资源分发到全球边缘节点,用户可以从最近的节点获取,显著减少加载时间,提升页面性能。",
"source": null,
"related": []
},
{
"id": "fb-005",
"type": "fill_blank",
"question": "CDN 可以提供 ____ 防护能力,将攻击流量分散到全球多个边缘节点,避免源站被压垮。",
"answer": [
"DDoS"
],
"answer_rule": "any",
"difficulty": 2,
"tags": [
"CDN",
"DDoS防护",
"安全"
],
"explanation": "CDN 天然具有 DDoS 防护能力。由于 CDN 拥有全球分布的大量边缘节点和巨大的带宽容量,当遭受 DDoS 攻击时,攻击流量会被分散到全球各地的边缘节点上,而不是全部涌向源站。每个边缘节点只需承受一小部分攻击流量,加上专业的流量清洗机制,可以有效缓解 DDoS 攻击对源站的冲击。",
"source": null,
"related": []
},
{
"id": "fb-006",
"type": "fill_blank",
"question": "CDN 的 HTTPS 终止是指边缘节点负责处理与用户之间的 ____ 握手,而边缘节点到源站之间可以使用 HTTP 协议通信。",
"answer": [
"TLS",
"SSL"
],
"answer_rule": "any",
"difficulty": 3,
"tags": [
"CDN",
"HTTPS终止",
"TLS",
"安全"
],
"explanation": "HTTPS 终止(TLS Termination)是 CDN 的重要功能。用户与边缘节点之间建立 HTTPS/TLS 加密连接,边缘节点负责完成 TLS 握手和加解密工作。而边缘节点与源站之间可以使用 HTTP 通信,这样既保证了用户端的安全性,又减少了源站处理 TLS 的计算开销,提升了整体性能。",
"source": null,
"related": []
},
{
"id": "fb-007",
"type": "fill_blank",
"question": "CDN 缓存策略中,Cache-Control 的 max-age 指令控制资源在浏览器/节点缓存中的 ____ 时间,immutable 标记表示资源永不变形。",
"answer": [
"有效",
"存活",
"过期"
],
"answer_rule": "any",
"difficulty": 3,
"tags": [
"CDN",
"Cache-Control",
"缓存策略"
],
"explanation": "max-age 指令指定了资源在缓存中的有效期(秒数),在有效期内浏览器或 CDN 节点不会重新向服务器请求该资源。immutable 标记告诉浏览器该资源一旦部署就不会修改(通常配合版本号文件名使用),即使用户手动刷新也不会重新请求,进一步减少不必要的网络请求,提升加载速度。",
"source": null,
"related": []
},
{
"id": "fb-008",
"type": "fill_blank",
"question": "CDN 的缓存通常采用分层架构:用户请求先到达 ____ 节点,未命中则到区域节点,最后才回源站。",
"answer": [
"边缘"
],
"answer_rule": "any",
"difficulty": 3,
"tags": [
"CDN",
"缓存分层",
"边缘节点",
"区域节点"
],
"explanation": "CDN 采用三级缓存分层架构:①边缘节点(Edge)——最靠近用户,缓存热门资源的副本;②区域节点(Regional/Mid-Tier)——覆盖一个地理区域,缓存该区域内多个边缘节点的共享资源;③源站(Origin)——最终的数据源。请求从边缘到区域到源站逐层回溯,只有上层缓存未命中才会访问下层,有效降低了源站压力。",
"source": null,
"related": []
},
{
"id": "fb-009",
"type": "fill_blank",
"question": "CDN 保证缓存一致性的常见手段包括:文件名加版本号、主动调用 ____ API 清除缓存、以及设置较短的 max-age。",
"answer": [
"清除",
"刷新",
"purge"
],
"answer_rule": "any",
"difficulty": 3,
"tags": [
"CDN",
"缓存一致性",
"版本号",
"缓存清除"
],
"explanation": "CDN 缓存一致性是常见挑战,主要通过三种方式保证:①文件名加版本号或内容哈希(如 style.v2.css),新版本 URL 是新资源,天然绕过旧缓存;②主动调用 CDN 提供的 purge/invalidation API,强制清除指定 URL 或目录的缓存;③设置较短的 max-age,让缓存快速过期重新验证。实际项目中通常组合使用这些策略。",
"source": null,
"related": []
},
{
"id": "fb-010",
"type": "fill_blank",
"question": "CDN 的缓存命中率通常很高,100 万用户访问时,源站可能只需处理 ____ 次回源请求。",
"answer": [
"1万",
"10000"
],
"answer_rule": "any",
"difficulty": 2,
"tags": [
"CDN",
"缓存命中",
"回源比例"
],
"explanation": "CDN 的核心价值就是通过缓存大幅减少源站压力。假设 CDN 缓存命中率为 99%,那么 100 万次用户请求中只有 1% 需要回源,即源站只需处理约 1 万次请求。这意味着源站的负载降低了 99%,极大地保护了源站的可用性和性能,同时也能节省源站的带宽和计算资源成本。",
"source": null,
"related": []
}
]
}