HTTP/2 的流控窗口如何按流和连接两级工作
围绕“HTTP/2 的流控窗口如何按流和连接两级工作”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分每 stream 与整连接两级窗口及 WINDOW_UPDATE 的增量更新机制,并指出它只管接收缓冲不管网络拥塞,不与 TCP。
流处理专题面试题第 2 页,显示第 51–100 题,共找到 177 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“HTTP/2 的流控窗口如何按流和连接两级工作”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分每 stream 与整连接两级窗口及 WINDOW_UPDATE 的增量更新机制,并指出它只管接收缓冲不管网络拥塞,不与 TCP。
围绕“QUIC 的流内有序、流间独立交付如何消除传输层队头阻塞”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用丢包只暂停所属 stream、其他 stream 可继续交付给应用这一机制作答,并指出流内仍有序。
围绕“TCP 为什么存在粘包和拆包,应用层协议应如何处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明字节流无消息边界是本质原因,并给出长度前缀、分隔符、定长三种应用层分帧方案,不归咎于「网络问题」。
围绕“使用 TextDecoder 的 stream: true 选项处理分块数据时,为什么需要传递 true”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 stream 模式允许暂未完成的字符缓存,直到后续 chunk 补齐;否则会替换/丢失字符。
围绕“当字节流不是合法 UTF-8 时,TextDecoder 默认如何处理,如何改变处理方式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 fatal 选项是否抛出异常,以及 ignoreBOM 选项的作用。
围绕“configurable:false 的属性有哪些操作被禁止”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕禁止删除、修改描述符(除 writable 改为 false)、不能切换访问器与数据属性。
本题说明 writable:false 属性在严格模式赋值抛 TypeError、非严格模式静默失败且值不变,并讲解描述符机制、配置对象场景、易失效边界与可操作的检查方式。
围绕“在流式渲染中,如果数据获取延迟,是否会影响首屏内容的显示?如何缓解”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明数据延迟可能导致首屏内容空白,应提前获取关键数据或提供骨架屏。
围绕“Route Handlers 是否支持流式响应?如果支持,应如何实现大文件下载的渐进式输出”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明使用 Response.stream() 和 ReadableStream 构建流式输出,以避免内存溢出。
围绕“Server Actions 中如何安全地接收并处理用户上传的文件?有哪些关键限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Server Actions 支持通过 FormData 接收文件流,但不能直接访问本地文件系统,需使用 Blob/Buffe。
解释 exec 与 execFile 收集 stdout、stderr 的缓冲限制,使用中文输出示例区分字符数与字节数,并比较调整有界预算、spawn 流式消费、文件输出和保留有效诊断的处理方式。
围绕“如何实现 Node.js 子进程之间类似 shell 管道 a | b 的数据流转”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出将一个子进程的 stdout pipe 到另一个的 stdin 及错误传播处理。
从 shell 解析、参数传递、输出消费和进程生命周期比较 spawn 与 exec,说明 execFile 的位置、大输出与长任务的选择,以及异步创建进程为什么仍需要处理背压和错误。
围绕“JSON.parse 一个超大请求体为什么也会阻塞 Node.js 事件循环,有哪些缓解方式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出 JSON 解析是同步 CPU 操作且给出流式解析或限制体积等方案。
围绕“Node.js 服务返回大文件时为什么不能 readFile 进内存再 res.end,正确做法是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须对比整读与流式响应的内存差异及 fs.createReadStream 配合 pipe/pipeline 的做法。
围绕“Node.js 中为什么推荐用 stream.pipeline 串联流而不是手工 pipe,背压在服务端防内存暴涨中”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明背压传导机制及 pipeline 的错误清理优势。
围绕“为什么 for await 遍历 Node.js Readable 时提前 break 会自动销毁流,这替代不了哪种”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要说明异步迭代消费触发读并在提前退出时销毁流,但仍需捕获迭代抛出的上游错误。
解释 write 返回 false 是停止继续生产的背压信号,说明当前数据已进入写入流程、不能重写同一块,并用慢速对象流示例验证顺序、drain 等待和正常结束。
围绕“Node.js 把大文件流式转成 Base64 时按任意字节块 encode 为什么会得到错误结果”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答 Base64 以 3 字节为一组,需缓存余量在流尾补 padding,不能每块独立编码。
解释 cork 暂存写入与 uncork 释放的关系,使用 writev 示例验证小写入批量交付,并说明嵌套调用计数、end 的处理、背压等待死锁与无批处理实现时的成本。
围绕“Node.js 用 crypto Hash 对流式下载做校验时,update 顺序和最终 digest 时机有哪些坑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答必须按 chunk 到达顺序 update,end 后才能 digest,且校验失败需销毁已写文件。
区分停止继续生产并完成已有写入与立即进入销毁流程,说明错误、finish、close 和 destroyed 标志的边界,以及已发生外部副作用、双工两侧和自定义清理的责任。
围绕“Node.js 流处理内存持续上涨时,如何区分是未遵守背压、Buffer 视图钉住大内存还是对象模式堆积”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要给出检查 write 返回值/drain、slice/subarray 引用链、objectMode 队列计数三类定位路径。
围绕“Node.js Writable 在 end 之后再 write 会触发什么错误,为什么不能靠 try/catch ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要说明状态机拒绝 end 后写入并异步报 error,应用需监听 error 或用 promises API。
区分可读耗尽、可写完成和资源关闭,说明 finished 如何组合成功与异常结束、双工流的等待范围和 cleanup 选项,并用 PassThrough 示例验证写入完成后仍有可读数据。
区分自动推送的 flowing 模式和主动 read 的 paused 模式,解释 readableFlowing 三种状态、data 与 readable 的使用方式、暂停恢复及混用消费接口造成的理解偏差。
从消费者视角区分可读流、可写流、双工流和转换流,说明网络 socket 与压缩转换的差异、两侧缓冲和结束状态,以及 objectMode、chunk 边界和背压的共同约束。
围绕“Node.js 顺序读取超大文件为什么流式加背压比 readFile 全量读入更适合,何时 readFile 反而更”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要比较常驻内存与 GC 压力,指出小配置或需随机访问时 readFile 可接受。
围绕“Node.js 将文件流压缩后发给 HTTP 客户端时,为什么 Content-Length 通常不可预知,应改用什”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要说明压缩输出长度依赖内容,流式场景用 chunked 或省略长度而非预读全量。
说明 highWaterMark 是背压阈值而非严格内存上限,区分字节流、对象模式和字符串编码,分析大阈值的吞吐收益与内存、排队延迟代价,并给出按实际负载测量的步骤。
围绕“Node.js 接收 HTTP 上传流时如何用背压限制落盘速度,超限请求应在哪一层截断”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答 req 是 Readable,写文件 false/drain 控制节奏,字节超限应 destroy 输入并清理临时文件。
围绕“实现 Node.js 自定义 Readable 时 _read(size) 内 push() 返回 false 应如”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要说明 push 返回 false 表示消费侧缓冲已满应暂停拉取上游,push(null) 表示结束。
围绕“实现 Node.js 自定义 Writable 时 _write 的 callback 应何时调用,延迟调用会引发什”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答每次 _write 必须恰一次回调以推进队列和触发 drain,漏调会挂起写入。
围绕“多个 Node.js Readable 同时 pipe 到同一个 Writable 时,如何避免 chunk 交错导”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答默认并发写会交错,需串行 pipeline 或自定义合流按边界帧化。
围绕“Node.js 流的 objectMode 改变了 highWaterMark 和 chunk 的什么计量方式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答对象模式按条数而非字节计数、push 非 Buffer 对象的约束。
围绕“Node.js 用 pause/resume 对 Readable 做限速时,为什么不能保证精确速率,还要配合什么机”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答 pause 只停止事件投递不撤销已缓冲数据,精确限流需令牌桶并尊重 drain。
比较 pipe 的连接与背压能力和 pipeline 的整链完成、错误及销毁管理,用对象转换示例验证成功与中途失败,并说明 HTTP 响应销毁后无法补写错误页及流外资源的清理责任。
围绕“Node.js stream/promises 的 pipeline 与 finished 相比事件回调写法解决了哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答 Promise 化便于 await 完成或失败并统一清理,但仍不替代业务状态码处理。
解释 read 返回 null 的多种情况,区分生产方 push(null)、缓冲读完和 end 事件,并用可控 Readable 示例验证暂时无数据、随后到达的数据以及 readableEnded 的变化。
围绕“消费方对 Node.js Readable 调用 destroy 后,底层定时器或数据库游标为什么不一定自动释放”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答自定义流需实现 _destroy 释放外部资源,destroy 只保证流生命周期回调。
围绕“Node.js Readable.from 把数组或异步迭代器转成流时,背压是否自动生效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要回答 Readable.from 按拉取节奏消费迭代器并支持对象模式,但仍受下游 write/drain 制约。
围绕“Node.js 流式按 chunk 解码 UTF-8 时,为什么不能直接对每个 Buffer 调 toString ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要说明多字节字符可能落在 chunk 边界,需 StringDecoder.write/end 保留未完成序列。
围绕“useFetch 如何处理服务器流式响应(如 SSE)?如何在客户端接收并解析持续推送的数据”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 `stream: true` 选项如何开启流式传输,以及如何通过 `response.body` 读取数据流。
围绕“DOCX 与 PPTX 入库解析的主要差异是什么,为什么不能共用同一段提取逻辑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明段落流式文档与分页视觉文档在语义单元上的本质差异。
用商品筛选页说明怎样从职责、数据流和变化原因建立组件层级,先做静态视图再识别最小状态,避免按每个 div 拆组件、把派生结果重复保存或过早使用 Context。
围绕“action 中执行长时间异步任务(如文件上传)时,如何避免阻塞主线程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 background task + polling or redirect to status page,不能让 acti。
围绕“action 中发生客户端无法处理的错误(如网络中断)时,如何正确提示用户”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 throw new Error() 并在 error boundary 渲染,不能仅在 console 打印。
围绕“action 如何接收动态生成的表单字段(如 JSON 字符串或数组)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 FormData 或 JSON.parse 处理,不能仅提 input name 固定。
围绕“使用 action 处理表单提交时,如何确保用户在提交后仍能保留当前导航状态”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 action 通过返回 redirect / json / undefined 决定后续行为,不能只提 useNavigate。
围绕“action 如何处理 multipart/form-data 表单(如文件上传)?是否支持原生 file inpu”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明支持通过 formData API 接收,无需额外库,不能误认为需特殊配置。