Go问答技术文章
-
Golang · Go问答 | 2星期前 | 连接池 · 性能排查 · Go问答 · net/http Go HTTP/2 MaxConcurrentStreams StrictMaxConcurrentRequests 请求排队
Go HTTP/2 请求排队通常是单连接活动流达到对端配额,但也可能来自业务信号量或流控。本文说明如何定位等待位置,并联合调整服务端流上限、客户端连接策略和下游并发保护。188 收藏 -
Go HTTP/2 连接在读空闲后会发送 PING,未在 PingTimeout 内收到响应便关闭连接。本文比较 CountError、httptrace、协议日志与代理指标,给出定位 conn_close_lost_ping 和配置超时的实用方法。126 收藏 -
Go 的 http.FileServer 不会自动为单页应用回退到 index.html。本文用 fs.Stat、Accept 与扩展名判断区分真实静态文件、前端路由和缺失资源,并给出支持 embed.FS 的完整 Handler。106 收藏 -
Golang · Go问答 | 2星期前 | HTTP · Cookie · net/http · Go问答 · cookie Go net/http CookiesNamed Request.Cookies
解释 Go Request.Cookies、CookiesNamed 和 Cookie 在同名 Cookie 请求头下的读取顺序与选择语义,给出重复值排查示例、版本边界和登录态处理策略。102 收藏 -
Go 的 SameSite 只负责把 Cookie 的跨站发送策略写入 Set-Cookie,真正是否携带还要看浏览器请求类型、Secure、Fetch credentials 与服务端 CORS。本文用场景表和代码说明 Strict、Lax、None 的边界。111 收藏 -
Go 流式响应发送 Trailer 时,已知字段名必须在首次 WriteHeader、Write 或 Flush 前通过 Trailer 响应头声明;正文写完后再设置最终值。本文用一个 NDJSON 小项目讲清服务端顺序、客户端 EOF 读取、TrailerPrefix 边界和自动化验收。215 收藏 -
Go Header 的值是字符串切片:Set 会替换旧值,Add 会追加新值。本文从键名规范化、单值与多值字段、重复写入来源和 Values 检查四个角度说明如何选择方法并排查重复字段。240 收藏 -
解释 Go ResponseController.Flush 为什么返回不支持,比较 errors.Is 降级、ResponseWriter Unwrap 修复和旧版 Flusher 断言,并给出可执行测试。425 收藏 -
Go Handler 读取请求体后下游为空,通常是前置组件消费了 Request.Body。本文给出解析一次传递 Payload、兼容旧下游重建 Body,以及大小限制和错误处理方案。442 收藏 -
Go HTTP 中间件重复写响应头,通常是前一层已提交错误响应却仍调用后续处理器。本文从提交边界、调用链、临时探针和响应所有权测试逐层定位。270 收藏 -
Go ServeMux 在模式互相重叠且谁都不更具体时会在注册阶段 panic。本文用请求集合规则解释路径变量冲突、定位方法、重构策略与测试边界。350 收藏 -
ErrWaitDelay 通常表示命令已成功退出,但 os/exec 管理的 I/O 管道在 WaitDelay 内仍未关闭。本文解释计时起点、后代进程继承描述符的常见原因、错误优先级和可落地的修复方式。333 收藏 -
Go 的 url.URL 同时设置 Path 和 Opaque 时,String 会根据 URL 形态选择层级路径或 scheme:opaque 表示,两个字段不会简单拼接。本文用最小结构对比、查询参数边界和回归清单说明正确构造方式。170 收藏 -
解析 Go 查询字符串时,url.ParseQuery 可能同时返回错误和部分 Values。本文用源码顺序说明合法参数为何保留、错误项如何跳过,以及 HTTP 入口该如何选择严格策略。311 收藏 -
Go 的 URL.RawPath 只是 Path 的可选编码提示。只有编码形式有效且反转义后与 Path 完全一致,EscapedPath 才会采用它;否则会忽略 RawPath,并从 Path 重新生成转义结果。370 收藏