Go语言技术文章
-
Go SetDeadline 设置的是连接上的绝对读写期限,不是只作用于下一次调用。本文说明总耗时与空闲超时的区别、方向 API 的选择、超时判断和并发复查方法。438 收藏 -
Go 读取邮件时,mail.ReadMessage 负责拆分邮件头,中文 Subject 用 mime.WordDecoder.DecodeHeader 解码,中文 From 则用带 WordDecoder 的 AddressParser 解析;遇到 GBK 等字符集时再补 CharsetReader。485 收藏 -
Go 处理 IPv6 host:port 时不能直接按冒号拆分,本文用 net.SplitHostPort 和 net.JoinHostPort 说明方括号、zone、端口边界及异常输入处理。219 收藏 -
Go 默认会按操作系统的解析规则查找域名。需要固定 DNS 服务器时,可以给 net.Resolver 配置 Dial 回调,再把它接入 net.Dialer.Resolver,让 LookupHost 或 HTTP 客户端使用同一套解析策略。351 收藏 -
Go 1.22 及以上可在 ServeMux 中注册命名通配符,并用 Request.PathValue 读取路径参数。本文区分单段参数与剩余路径,说明空值排查、转义边界和旧版兼容检查。499 收藏 -
Go 的 TCP KeepAlive 不是应用层心跳。本文从 TCPConn 的传统 API 讲到 Go 1.23 的 KeepAliveConfig,说明 Idle、Interval、Count 怎么设置,以及 Dialer、Listener 和跨平台使用时的边界。115 收藏 -
Go 的 http.Cookie 设置成功后,浏览器是否发送主要由 Path 与请求 URL 的路径匹配决定。本文解释显式 Path、默认路径、排查顺序,以及删除 Cookie 时的配对规则。472 收藏 -
Go 访问内网 HTTPS 服务时,用 x509.CertPool 加载自签名 CA 并注入 tls.Config.RootCAs,保留证书链与主机名校验。192 收藏 -
Go 的 FormValue 会把请求体与 URL 查询参数统一放入 Form,并按固定优先级返回第一个值。本文用一个重复参数示例说明来源、优先级与明确读取方式。446 收藏 -
用 Go 标准库为内部 HTTP 工具增加 Basic 认证,讲清服务端 BasicAuth、客户端 SetBasicAuth、401 挑战、HTTPS 和凭据校验边界。285 收藏 -
Golang · Go问答 | 21小时前 | 网络编程 · HTTP · Go问答 · 代理配置 · Go HTTP代理 http.Transport ProxyFromEnvironment HTTP_PROXY
Go 的 http.Get 并不是绕过环境配置直接联网:DefaultClient 会使用 DefaultTransport,而 DefaultTransport 默认把 Proxy 绑定到 ProxyFromEnvironment。本文沿着调用链解释 HTTP_PROXY、HTTPS_PROXY、NO_PROXY 和 localhost 的关系,并给出关闭或显式指定代理的写法。282 收藏 -
用 Go net/http 为静态资源设置稳定 ETag,配合 If-None-Match 返回 304,减少未变化文件的重复传输,并说明 ServeContent、Seek、Range 与资源更新的边界。322 收藏 -
MaxIdleConnsPerHost 只限制单个 host 的空闲 keep-alive 连接;需要总连接上限时应使用 MaxConnsPerHost,并区分 HTTP/2 流与业务并发。103 收藏 -
Golang · Go教程 | 21小时前 | HTTP · sse · Go教程 · 实时推送 · Go EventSource SSE Server-Sent Events http.Flusher
Go 写 SSE 接口时,关键不是循环写字符串,而是正确设置 text/event-stream、用 http.Flusher 刷新缓冲,并用 Request.Context 感知浏览器断开。本文给出可落地的 Go 服务端与浏览器接收示例,补充心跳、代理缓冲和重连边界。215 收藏 -
Go 的 http.Response.Body 不是拿到响应头就结束了。本文解释为什么读到 EOF 再关闭有助于 HTTP/1.x 连接复用,以及大响应、未知长度和只关心状态码时如何选择。372 收藏