Files
examination/topics/networking/http-handshake/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

167 lines
5.0 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"topic": "http-handshake",
"type": "fill_blank",
"schema_version": "1.0.0",
"generated": "2026-09-02T21:20:00+08:00",
"questions": [
{
"id": "fb-001",
"type": "fill_blank",
"difficulty": 2,
"tags": [
"TCP",
"三次握手"
],
"question": "TCP 三次握手中,第二次握手服务器发送的标志位是____。",
"answer": [
"SYN-ACK"
],
"explanation": "第二次握手服务器发送 SYN-ACK(Synchronize-Acknowledge),表示收到客户端的连接请求并确认,同时自己也准备好建立连接。",
"source": null,
"related": []
},
{
"id": "fb-002",
"type": "fill_blank",
"difficulty": 3,
"tags": [
"TLS",
"HTTPS"
],
"question": "TLS 1.3 相比 TLS 1.2 将握手耗时从 2-RTT 优化到了____-RTT。",
"answer": [
"1"
],
"explanation": "TLS 1.3 优化了握手流程,将握手耗时从 TLS 1.2 的 2-RTT 优化到 1-RTT。TLS 1.3 的 0-RTT 恢复可以在恢复会话时做到 0-RTT。",
"source": null,
"related": []
},
{
"id": "fb-003",
"type": "fill_blank",
"difficulty": 2,
"tags": [
"HTTP/1.x"
],
"question": "HTTP/1.0 和 HTTP/1.1 在应用层____(有/没有)握手。",
"answer": [
"没有"
],
"explanation": "HTTP/1.0 和 HTTP/1.1 没有应用层握手。TCP 连接建立后,TLS 握手完成后,客户端直接发送 HTTP 请求。",
"source": null,
"related": []
},
{
"id": "fb-004",
"type": "fill_blank",
"difficulty": 3,
"tags": [
"HTTP/2",
"SETTINGS"
],
"question": "HTTP/2 在连接建立后通过____帧交换连接参数。",
"answer": [
"SETTINGS"
],
"explanation": "HTTP/2 在连接建立后通过 SETTINGS 帧交换参数,如最大并发流数、窗口大小等。这不算严格的「握手」,但起到类似的协商作用。",
"source": null,
"related": []
},
{
"id": "fb-005",
"type": "fill_blank",
"difficulty": 4,
"tags": [
"HTTP/3",
"QUIC"
],
"question": "HTTP/3 基于 QUIC 协议,QUIC 将传输层握手和____握手合二为一。",
"answer": [
"TLS 1.3"
],
"explanation": "QUIC 把传输层握手和 TLS 1.3 握手合二为一,首次连接只需 1-RTT,恢复连接可达 0-RTT。",
"source": null,
"related": []
},
{
"id": "fb-006",
"type": "fill_blank",
"difficulty": 2,
"tags": [
"TCP",
"三次握手"
],
"question": "TCP 三次握手的本质是双方各确认一次____能力。",
"answer": [
"收发"
],
"explanation": "三次握手的本质是双方各确认一次收发能力,确保连接可靠。客户端确认自己能发能收,服务器确认自己能发能收。",
"source": null,
"related": []
},
{
"id": "fb-007",
"type": "fill_blank",
"difficulty": 3,
"tags": [
"TLS",
"HTTPS"
],
"question": "TLS 握手完成的三件事包括证书验证、密钥协商和____确定。",
"answer": [
"加密套件"
],
"explanation": "TLS 握手完成的事包括:证书验证(确认服务器身份)、密钥协商(生成对称加密密钥)、加密套件确定(双方商定使用的加密算法)。",
"source": null,
"related": []
},
{
"id": "fb-008",
"type": "fill_blank",
"difficulty": 4,
"tags": [
"HTTP/3",
"QUIC"
],
"question": "HTTP/3 基于____协议运行在 UDP 之上。",
"answer": [
"QUIC"
],
"explanation": "HTTP/3 基于 QUIC 协议,QUIC 运行在 UDP 之上。QUIC 内置了 TLS 1.3、可靠传输、多路复用和 0-RTT 恢复。",
"source": null,
"related": []
},
{
"id": "fb-009",
"type": "fill_blank",
"difficulty": 3,
"tags": [
"TLS",
"0-RTT"
],
"question": "TLS 1.3 的 0-RTT 恢复虽然快,但存在____攻击风险。",
"answer": [
"重放"
],
"explanation": "0-RTT 恢复虽然快,但存在重放攻击风险。0-RTT 发送的数据不能保证幂等性,因此不适合做敏感操作(如支付)。",
"source": null,
"related": []
},
{
"id": "fb-010",
"type": "fill_blank",
"difficulty": 4,
"tags": [
"HTTP/2",
"TCP"
],
"question": "HTTP/2 的 SETTINGS 交换发生在____层,解决的是「怎么高效通信」的问题。",
"answer": [
"应用"
],
"explanation": "HTTP/2 的 SETTINGS 交换发生在应用层,目的是协商 HTTP 协议参数(如最大并发流、窗口大小等)。TCP 握手解决的是「能不能通信」。",
"source": null,
"related": []
}
]
}