HTTP/2 的流控窗口如何按流和连接两级工作
围绕“HTTP/2 的流控窗口如何按流和连接两级工作”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分每 stream 与整连接两级窗口及 WINDOW_UPDATE 的增量更新机制,并指出它只管接收缓冲不管网络拥塞,不与 TCP。
HTTP专题面试题第 2 页,显示第 51–100 题,共找到 141 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“HTTP/2 的流控窗口如何按流和连接两级工作”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分每 stream 与整连接两级窗口及 WINDOW_UPDATE 的增量更新机制,并指出它只管接收缓冲不管网络拥塞,不与 TCP。
围绕“HTTP/2 的 HPACK 头部压缩如何利用静态表、动态表和 Huffman 编码”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲动态表在连接内跨请求共享上下文带来的压缩收益,以及索引表与编码的协同。
围绕“HTTP/2 的 SETTINGS_MAX_CONCURRENT_STREAMS 如何影响客户端并发发送”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲服务端通过 SETTINGS 帧限制并发流数与客户端排队行为,以及该值对代理合并连接的影响。
围绕“HTTP/2 多路复用解决了哪一层队头阻塞,仍残留哪一层”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须明确解决 HTTP 应用层队头阻塞但 TCP 层丢包仍阻塞所有流的残留问题,为引出 HTTP/3 留边界但不展开 QUIC。
围绕“HTTP/2 Server Push 的设计意图是什么,为什么实践中被弃用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明主动推送省往返的初衷与缓存匹配困难、推送浪费带宽的实际问题,并给出 103 Early Hints 或 preload 的替代方。
围绕“HTTP/2 的流优先级依赖树如何工作,为什么实际部署效果常不理想”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲 weight 与依赖树表达浏览器加载意图的机制,并指出实现不一致导致优先级信号常被忽略。
围绕“在丢包率较高的网络中为什么 HTTP/2 可能比 HTTP/1.1 多连接更慢”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释单连接丢包重传阻塞全部流,而 HTTP/1.1 六条连接分散了丢包影响。
围绕“客户端如何发现一个站点支持 HTTP/3,Alt-Svc 与 HTTPS DNS 记录各起什么作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲首次仍走 TCP 经 Alt-Svc 响应头或 HTTPS/SVCB DNS 记录获知 QUIC 端点并缓存,以及升级失败回退。
围绕“HTTP/3 为什么要放弃 TCP 转而基于 QUIC”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须从 TCP 队头阻塞、握手开销、协议僵化三个 TCP 无法在传输层内解决的问题作答。
围绕“HTTP/3 与 HTTP/2 在语义上保持一致,差异主要在哪些层”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须强调请求响应语义、头部字段不变,差异在分帧映射、流控承载于 QUIC 与头部压缩换成 QPACK。
围绕“HTTP Keep-Alive 连接复用如何工作,空闲连接超时设置不当会有什么后果”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清同一 TCP 连接串行处理多个请求的机制,以及代理中间件超时短于客户端导致的竞态错误。
围绕“企业网络封禁 UDP 时 HTTP/3 如何优雅回退,设计上有哪些考虑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲 Happy Eyeballs 式并行竞速与 Alt-Svc 失败标记后回退 HTTP/2 的策略,以及回退不能破坏请求幂等性。
围绕“Kubernetes Ingress 的 TLS 终止配置与证书引用如何工作”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 tls.secretName 引用及 Controller 终止 HTTPS 的位置。
围绕“HTTP、TCP、exec、gRPC 四种探针探测方式各适合什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖按协议与侵入性比较选型及 gRPC 探针的版本要求。
围绕“如何用 awk 从访问日志统计请求量最高的 IP 或状态码分布”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 awk 提取字段+sort+uniq -c+sort -rn 的经典管线及各段职责。
围绕“NestJS 内置的 ParseIntPipe、ParseBoolPipe 等解析管道失败时行为是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明内置解析管道的校验语义与默认 HTTP 异常。
围绕“NestJS 的 ExecutionContext 如何统一 HTTP、WebSocket 和微服务上下文”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 getType/switchToHttp 等 API 如何让守卫拦截器跨传输协议复用。
围绕“TLS 的 ALPN 扩展起什么作用,它和 HTTP/2 的协商有什么关系”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确握手期间协商应用层协议(h2/http1.1)避免额外往返的机制。
围绕“DNS over HTTPS(DoH)解决了什么问题,它和传统 DNS 查询在链路上有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 DoH 将 DNS 查询封装进 HTTPS 以防窃听与篡改,并指出其绕过本地解析策略的争议,不对比 DoT 的端口细节。
围绕“HSTS 解决了什么问题,max-age、includeSubDomains 和 preload 各自有什么作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释强制 HTTPS 防 SSL 剥离及首次访问前的 preload 弥补方案。
围绕“把站点从 HTTP 迁移到 HTTPS 时,301 重定向和 HSTS 应如何配合设计,迁错会有什么后果”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出全站 301、证书覆盖所有子域、谨慎开启 preload 不可逆性的决策顺序。
围绕“用户首次访问一个 HTTPS 站点时,从输入域名到加密连接建立,DNS 与 TLS 各自发生在哪个阶段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按时间线串起 DNS 解析、TCP 建连、TLS 握手(含 SNI/ALPN)、发送请求的顺序,不深入任一环节内部细节(另有专题)。
围绕“HTTPS 页面加载 HTTP 资源的混合内容问题是什么,浏览器对主动与被动混合内容分别如何处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分脚本等主动内容被阻止与图片被动内容被降级/升级的策略。
围绕“TLS 中的 SNI 是什么,没有 SNI 会导致一台服务器托管多个 HTTPS 站点时出现什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 ClientHello 中携带域名使服务器在握手前选择正确证书,及旧客户端无 SNI 的兼容问题。
围绕“SSL 剥离攻击是如何实现的,为什么仅靠 301 跳转到 HTTPS 不足以防御”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释攻击者拦截首个 HTTP 请求代理降级的过程,并指出 HSTS 才是根治手段。
围绕“如何用 ACME 协议(如 Let's Encrypt)实现证书自动签发与续期,DNS-01 和 HTTP-01 挑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须对比两种质询的验证方式及通配符证书只能用 DNS-01 的限制。
围绕“访问 https://example.com 时证书签发给 www.example.com 会怎样,证书中哪些字段参”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 SAN 优先于 CN 的现代校验规则及通配符证书的匹配范围。
围绕“配置 HTTPS 服务器时如何选择 TLS 密码套件,哪些历史算法必须禁用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出禁用 RC4、3DES、静态 RSA、SHA-1 等的判断依据及优先 AEAD 套件的原则,不逐一列举全部套件。
围绕“一次新建 HTTPS 连接比 HTTP 连接多几次 RTT,有哪些手段可以降低 TLS 握手延迟”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须量化 TCP+TLS 的往返开销并给出会话恢复、TLS 1.3、HTTP/2 复用、CDN 就近终结等方案。
围绕“HTTPS 如何防止中间人攻击,攻击者伪造证书为什么通常骗不过浏览器”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 CA 信任体系与签名校验如何阻断伪造身份,以及用户忽略警告后的风险边界。
围绕“Next.js 的缓存是否支持 `Cache-Control` HTTP 头?如何配置”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明可通过 `headers` 函数在响应中设置 `Cache-Control`,影响边缘缓存行为。
围绕“Next.js 如何为每个请求生成唯一的缓存键?这个过程是否受查询参数影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明缓存键基于 URL、查询参数、请求头等构建,因此不同参数会导致不同缓存,确保正确隔离。
围绕“Next.js 的缓存是否考虑请求头信息?如何利用请求头实现差异化缓存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明缓存键包含请求头,如 `Authorization`,因此不同用户可获得不同缓存内容。
围绕“Middleware 是否能访问服务端组件中的数据?它与 Route Handlers 的执行顺序有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Middleware 不能访问服务端组件内部状态,仅能访问请求头、路径等元信息,且在所有 Route Handler 之前运行。
本题详解 Route Handlers 中实现 API Key 验证的具体步骤:如何从请求头取值、如何将密钥保存在环境变量、推荐使用安全的比较方式,并指出常见错误如硬编码和普通字符串比较的风险。
本文说明 Route Handlers 如何充当 JWT 认证中间件:请求拦截、验证令牌、将身份信息传递到上下文;重点在请求头传递机制与失败响应。
区分 HTTP 解析层 clientError、服务器 error 和业务异常,说明监听器接管连接清理、400 与 431、重复触发及原始报文日志边界,并给出受控原始连接测试方法。
围绕“Node.js 出站 HTTP 请求如何通过 http.Agent 的 keepAlive 与 maxSockets”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Agent 池化参数对下游服务并发的约束作用及默认值含义。
按响应后空闲、请求头接收和完整请求接收区分 Node.js HTTP 超时,解释代理连接池复用竞态及 keepAliveTimeoutBuffer 的版本边界,给出逐跳排查与验证方法。
围绕“Node.js 实现静态资源服务时如何正确响应 Range 请求头(206/416)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 Range 解析、206 与 416 状态及对应头部设置规则。
解释请求体应在读取时累计真实字节,区分 Content-Length 提前拒绝、分块传输、UTF-8 字节数和解压上限,提供可测试预算函数,并说明 413 与 socket 关闭的协调。
按监听器、空闲连接、活动请求和升级协议比较三个 HTTP 关闭接口,说明 Node 19 的行为变化、先停止监听再强制清理的顺序,以及排空测试应观察的完成条件。
区分 listen 参数同步异常与异步 server error,解释 EADDRINUSE、EACCES 的启动处理、就绪状态、退出码及有限重试,提供能真实复现端口占用的验证步骤。
围绕“Node.js HTTP 服务器的 timeout、requestTimeout 设置为 0 与有限值分别意味着什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 socket 空闲超时与整个请求超时的语义及生产取值建议。
围绕“Node.js 中 http2 模块与 http/1.1 服务在多路复用与连接管理上有哪些工程差异,什么时候选 HT”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明单连接多流对连接池与超时设计的影响及适用条件。
围绕“Node.js 通过 server.maxHeadersCount 或 --max-http-header-size”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明头部洪泛防护机制与放宽限制的内存风险。
本文说明Node.js HTTP请求处理中必须同时监听req和res的'error'事件的原因:漏监听会造成未处理异常并导致进程崩溃。区分两路错误的典型来源,给出具体处理和安全边界,防止服务因单请求异常退出。
围绕“Node.js 中字符串长度与 Buffer.byteLength 不一致时,HTTP Content-Length”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要指出 Content-Length 是字节数须用 Buffer.byteLength(编码后),多字节字符不能用 length。
围绕“Node.js fs.createReadStream 的 start、end 选项如何实现 HTTP Range ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要给出闭区间字节的 start/end 映射与 416/206 处理边界,end 不能超过文件大小。
围绕“Node.js 将文件流压缩后发给 HTTP 客户端时,为什么 Content-Length 通常不可预知,应改用什”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要说明压缩输出长度依赖内容,流式场景用 chunked 或省略长度而非预读全量。