-
Go httptrace.Got1xxResponse 会在最终响应前收到每个 1xx 信息响应的状态码和响应头。本文说明如何把 ClientTrace 挂到请求上下文、读取 MIMEHeader、处理 100 Continue 与 103 Early Hints,并划清错误中止、重定向和响应体关闭边界。
-
Go HTTP/2 的 MaxConcurrentStreams 限制的是单条连接的并发流,不是所有连接共享的服务总并发。本文说明 Server.HTTP2 的配置方式、跨连接边界以及上线检查清单。
-
Go HTTP/2 priority 没有生效时,先确认 Go 版本、HTTP/2 协议和服务端开关。本文解释 net/http.Server.DisableClientPriority 的布尔语义,以及自定义写调度器让该字段失效的边界。
-
Go 1.24 起可以通过 net/http.Protocols 明确控制 Server 接收的协议。本文用服务端配置示例说明如何让 HTTP/1 与未加密 HTTP/2 共存,解释 h2c 与 TLS HTTP/2 的差异,并给出回滚和排障要点。
-
Go 的 http.Transport.HTTP2 用于配置 HTTP/2 连接的高级参数,但它不负责选择协议。本文区分 Protocols 与 HTTP2Config,说明客户端可用字段、零值语义和服务端专属配置。
-
Go net/http 的 Cookie 同时提供 RawExpires 和 Expires:前者保留 Set-Cookie 中的原始过期文本,后者是解析后的 UTC 时间。本文用一个小型响应读取示例说明如何读取、判断解析失败,并按日志、兼容处理和业务判断选择字段。
-
Go net/http 的 Response.Body 是 io.ReadCloser,关闭负责资源交接,是否读到 EOF 则会影响 HTTP/1.x 持久连接能否复用。本文解释只 Close 与读完再 Close 的差异,并给出小响应和大响应的处理写法。
-
Go 的 net/http.Transport.MaxResponseHeaderBytes 用来限制客户端接收的响应头总字节数。本文说明正数阈值、零值默认行为、超限错误与 Transport 复用时的配置边界。
-
Go net/http.Header.WriteSubset 可以按排除表把请求头写成线格式,但排除键不会自动规范化。本文用一个转发场景讲清 Header map、排除表、Request.Host 与写出错误的边界。
-
Go 1.25 的 runtime/trace.FlightRecorder 适合为长时间运行服务保留最近一段执行追踪。本文说明 MinAge、MaxBytes、WriteTo 和单次快照触发之间的关系。
-
Go 1.27 调整了 go tool trace 的 -http 参数行为:只写端口时页面限制在 localhost。本文对比常见监听地址,说明本机查看与远程访问该怎么选。
-
Go slog.SetDefault 可以让 slog 顶层函数和标准 log 默认 Logger 共用同一个结构化 Handler。本文说明 JSONHandler 接入、SetLogLoggerLevel 的级别控制,以及独立 log.Logger 与 NewLogLogger 的边界。
-
Go encoding/json/v2 默认会忽略结构体中没有对应字段的 JSON 成员。本文用 RejectUnknownMembers 开启严格解码,并通过 SemanticError、ErrUnknownName 与 JSONPointer 定位多余字段。
-
复用同一个结果结构体调用 Go mapstructure 解码时,未出现在新输入中的字段可能继续保留。本文解释默认合并行为,并给出 ZeroFields、重新创建结果对象和 Metadata 的选择方法。
-
os.Root.OpenFile 只允许在已打开的根目录树内访问文件。本文从相对路径、..、绝对路径和 PathError 四个角度解释越界失败的原因,并给出安全的错误处理与选型边界。