面试知识库

HTTP演进 → HTTPS/TLS → 会话 → Web安全 追问链#

追问路径#

涉及知识点#

核心串联逻辑#

  1. HTTP演进主线:1.1的队头阻塞→2.0多路复用解决应用层阻塞→3.0用QUIC(UDP)解决TCP层阻塞和握手延迟
  2. HTTPS=混合加密:非对称(慢、安全)只用来协商对称密钥,对称(快)加密实际数据;ECDHE提供前向安全
  3. 信任靠CA链:证书由CA私钥签名,客户端用内置CA公钥验签,杜绝中间人伪造
  4. 无状态到有状态:Cookie+Session维持登录态,分布式下要么集中存(Redis)要么改用无状态JWT
  5. 安全防御对应攻击:XSS转义、CSRF用Token+SameSite、注入用预编译、越权靠后端鉴权
  6. 代码示例
    # 安全相关的关键响应头
    Set-Cookie: SID=xxx; HttpOnly; Secure; SameSite=Lax   # 防XSS窃取+防CSRF
    Content-Security-Policy: default-src 'self'            # 防XSS脚本注入
    Strict-Transport-Security: max-age=31536000           # 强制HTTPS(HSTS)
    http

面试回答串联#

30秒速答#

“HTTP/1.1有队头阻塞,2.0用二进制分帧+多路复用解决应用层阻塞,3.0基于QUIC解决TCP层阻塞。HTTPS用混合加密——非对称协商对称密钥再用对称加密数据,靠CA证书链防中间人。HTTP无状态靠Cookie+Session维持登录,分布式下用Redis集中存或JWT。Web安全上XSS靠转义、CSRF靠Token加SameSite Cookie。“

2分钟展开答#

“HTTP/1.1的核心问题是队头阻塞和文本协议低效。HTTP/2改成二进制分帧,一个连接上多路复用多个流,加上HPACK头压缩和服务端推送。但HTTP/2只解决了应用层队头阻塞,底层TCP一旦丢包还是会阻塞所有流,所以HTTP/3干脆基于QUIC(跑在UDP上自己实现可靠传输和多流),丢包只影响单条流,还把TLS握手合进去减少RTT。HTTPS的安全靠混合加密:TLS握手阶段用非对称加密(现在主流ECDHE)安全地协商出一个对称会话密钥,因为非对称慢只用来交换密钥,之后用AES对称加密传数据兼顾性能。防中间人靠CA证书链——服务器证书由CA私钥签名,浏览器用内置CA公钥验签,域名对不上就告警。ECDHE相比RSA密钥交换的好处是前向安全,每次握手用临时密钥,长期私钥泄露也解不了历史流量。TLS1.3把握手压到1-RTT甚至0-RTT会话恢复。HTTP本身无状态,登录态靠Cookie存SessionID、Session存服务端,分布式下要么把Session集中存Redis、要么用无状态的JWT——JWT易扩展但难主动失效,所以一般配短过期时间加黑名单。Web安全方面:XSS靠输出转义加CSP头,CSRF靠SameSite Cookie作第一道防线再加CSRF Token,SQL注入用预编译,越权操作必须后端校验权限不能只靠前端隐藏。“

相关追问链#