df63692a18
Deploy Examination / deploy (push) Successful in 31s
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
167 lines
5.0 KiB
JSON
167 lines
5.0 KiB
JSON
{
|
||
"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": []
|
||
}
|
||
]
|
||
} |