HTTP 响应头 Vary: * 表示什么,它为什么不能像列出具体头那样被缓存复用?
围绕“HTTP 响应头 Vary: * 表示什么,它为什么不能像列出具体头那样被缓存复用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 * 表示缓存键包含无法枚举的请求要素、响应永不可复用。
程序员面试题库第 42 页,收录第 2051–2100 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“HTTP 响应头 Vary: * 表示什么,它为什么不能像列出具体头那样被缓存复用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 * 表示缓存键包含无法枚举的请求要素、响应永不可复用。
围绕“把 Cookie 或 User-Agent 写进 HTTP Vary 头会带来什么实际后果,正确的替代方案是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须分析高基数头导致缓存碎片化的诊断思路。
围绕“服务器没设 Vary: Accept-Encoding 时,共享缓存把 gzip 响应发给不支持 gzip 的客户端”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须复现错误响应序列并给出修复头配置。
围绕“HTTP Vary: Accept-Encoding 导致缓存命中率下降的原理是什么,缓存键是怎么组成的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清 Vary 将指定请求头纳入缓存键的机制。
围绕“HTTP Warning 头中的 110(Response is Stale)和 111(Revalidation ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须用警告码区分「主动使用过期副本」与「验证失败兜底」两种故障形态,不列出全部警告码。
围绕“HTTP 100 Continue 状态码与 Expect: 100-continue 字段如何配合减少无效请求体传”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明先头部后主体的协商流程及其适用场景。
围绕“HTTP 200 与 204 状态码的语义区别是什么,删除接口应返回哪个”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断有主体与明确无主体的表达差异。
围绕“HTTP 201 Created 的语义是什么,Location 字段在其中起什么作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明资源创建成功语义及新资源地址的表达。
围绕“HTTP 202 Accepted 适合什么场景,客户端如何跟踪异步任务进度”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明已受理未完成的语义及轮询/状态资源设计。
围绕“HTTP 301 与 308 重定向状态码的区别是什么,为什么对 POST 请求影响不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断方法是否允许改变这一核心差异。
围绕“HTTP 302 Found 与 307 Temporary Redirect 的语义差异和历史背景是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 302 方法被改写为 GET 的历史行为及 307 的严格语义。
围绕“HTTP 303 See Other 的语义是什么,为什么它常用于表单提交后的重定向”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Post/Redirect/Get 模式中 303 强制改用 GET 的语义。
围绕“HTTP 304 Not Modified 的完整触发流程是什么,响应中可以携带哪些字段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明条件验证命中后无主体响应的语义及可更新的缓存字段。
围绕“HTTP 400 与 422 状态码在表单校验失败场景下应如何选择”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断语法错误与语义错误的边界。
围绕“HTTP 401 与 403 的语义区别是什么,它们分别要求哪些响应字段配合”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分未认证与无权限,并说明 WWW-Authenticate 字段的作用。
围绕“HTTP 404 与 410 状态码的语义差异是什么,分别对搜索引擎和客户端缓存有什么影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断“不确定是否存在”与“永久删除”的语义差异及下游影响。
围绕“HTTP 405 状态码的语义是什么,为什么响应必须携带 Allow 字段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明资源存在但方法不允许的语义及 Allow 字段的指引作用。
围绕“HTTP 406 与 415 状态码分别对应内容协商的哪两个方向失败”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分响应表示不可接受与请求主体类型不支持两个方向。
围绕“HTTP 408 与 504 状态码都表示超时,触发方和排查方向有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分客户端请求超时与网关上游超时的归因差异。
围绕“HTTP 409 Conflict 的语义是什么,版本控制冲突场景下如何使用它”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明状态冲突语义及乐观锁冲突的典型应用。
围绕“HTTP 412 Precondition Failed 在条件请求中表示什么,典型触发条件是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明前提条件不满足的语义,与 304 做对比区分。
围绕“HTTP 413 状态码表示什么,服务器如何通过配置与字段协商请求体大小限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明负载过大语义及服务端限制策略。
围绕“HTTP 416 Range Not Satisfiable 何时出现,客户端应如何恢复”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明请求范围超出资源大小的语义及重新获取的策略。
围绕“HTTP 429 状态码与 Retry-After 字段如何配合实现限流的客户端退避”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明限流语义及 Retry-After 的两种取值形式。
围绕“HTTP 500 与 503 的语义区别是什么,503 配合 Retry-After 有何意义”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分内部错误与暂时不可用的语义及客户端重试含义。
围绕“HTTP 502 与 504 在网关错误中分别表示什么,如何据此定位故障层”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分上游响应无效与上游无响应的归因差异。
围绕“HTTP Accept-Language 字段如何影响多语言站点的响应选择”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明语言优先级匹配机制。
围绕“HTTP Accept 字段中 q 值(quality value)的语义是什么,多个类型如何排序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明权重语法、默认值与最具体匹配优先的规则。
围绕“HTTP Accept-Ranges 字段的作用是什么,没有它客户端还能发起范围请求吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明服务器能力宣告与范围请求支持的关系。
围绕“HTTP 条件请求基于哪两组字段(If-Modified-Since / If-None-Match),分别解决什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明验证器字段与前提字段的配对关系。
本文解释HTTP CONNECT建立HTTPS隧道的过程:请求格式、成功响应后的双向转发语义、代理不解析TLS内容,以及限制目标端口等安全边界。
围绕“HTTP 内容协商有哪两种机制,Accept 系列字段如何参与服务器驱动协商”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明服务器驱动与代理驱动协商及 Accept 系列字段角色。
围绕“HTTP 中 Content-Type 与 Accept 字段分别描述哪个方向的数据格式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分请求主体格式声明与期望响应格式声明两个方向。
本文从HTTP语义出发,对比GET和POST在安全性、幂等性、可缓存性上的区别,解释浏览器回退/重载时的行为差异,并给出POST在满足特定响应头时可被缓存的边界条件。
本文解释 HEAD 方法语义:服务器返回与 GET 相同的头部但不含主体,用于高效获取元数据。涵盖典型用途如资源检查、缓存验证及实际约束,并提供工程场景和边界条件。
讲解 HTTP 幂等方法的判定标准,PUT 与 DELETE 为何幂等,以及幂等性如何让客户端在超时、断网等场景安全重试,含响应码变化与服务器不遵守语义等边界。
围绕“HTTP If-Unmodified-Since 字段的用途是什么,它与 If-Match 有何取舍”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明基于时间的写前提及其弱于 ETag 的精度问题。
围绕“HTTP 中 Last-Modified 与 ETag 同时存在时客户端应优先使用哪个,为什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 ETag 精度高于秒级时间戳的原因及回退关系。
围绕“HTTP 多段范围请求(multipart/byteranges)的响应格式是什么,何时服务器可以忽略 Range”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明多段响应体格式及服务器回退 200 的合法行为。
围绕“HTTP OPTIONS 方法的语义是什么,它在 CORS 预检中扮演什么角色”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 OPTIONS 查询资源能力及预检触发条件。
本题解释 HTTP PUT 与 PATCH 的语义核心区别:PUT 是完整替换且幂等,PATCH 是部分修改且不保证幂等。内容涵盖各自适用场景、具体工程示例、以及并发控制边界,帮助理解何时用 PUT 或 PATCH 以及它们的幂等性含义。
围绕“HTTP 范围请求中 Range 与 Content-Range 字段如何配合,206 状态码表示什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明单段范围请求流程及各字段格式。
围绕“遇到 HTTP 重定向循环(redirect loop)时,如何用状态码和 Location 字段定位问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖给出基于 Location 链与缓存的排查思路。
本题解释了HTTP安全方法的定义,强调安全指的是不请求改变服务器状态,而非返回成功。说明了GET和HEAD为何安全,并分析了工程场景、边界条件和常见误区,帮助开发者正确实现与使用安全方法。
本文解释 TRACE 的 loop-back 诊断原理,重点分析其导致敏感信息泄露的安全风险(XST),并说明为何生产环境应禁用以及禁用后的替代方案。
围绕“HTTP Vary 字段的作用是什么,漏配 Vary: Accept-Encoding 会导致什么缓存问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Vary 让缓存按字段维度区分变体的机制及错误缓存后果。
围绕“BBR 与 CUBIC 拥塞控制的设计思路有什么本质差异”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须对比 CUBIC 基于丢包填缓冲区与 BBR 基于带宽和 RTT 建模主动控速,并说明 BBR 不排队打满缓冲的意义。
围绕“什么是 bufferbloat,如何通过压测现象判断链路存在缓冲膨胀”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须描述满速下载时延迟飙升的典型现象及其由深队列引起,并给出测试方法。
围绕“为静态资源站点评估是否启用 HTTP/3 时,应考察哪些指标与回退风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出丢包率高或移动网络占比大收益更明显、关注回退率与 UDP 可达性、以真实用户测量验证的决策框架,不做泛泛优劣罗列。
围绕“HPACK 动态表为什么可能带来 CRIME 类压缩侧信道风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释攻击者注入内容与被压缩秘密同段时通过密文长度推断信息,及 HPACK 不跨连接分隔敏感字段的考量。