Go语言技术文章
-
Golang · Go问答 | 22小时前 | 网络编程 · 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教程 | 22小时前 | 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 收藏 -
用一个可复用的 ResponseWriter 包装器统一记录 Go HTTP 请求的状态码和响应大小,覆盖隐式 200、空响应、重复 WriteHeader 与 Flusher 边界。175 收藏 -
Go 的 http.Transport 可能自动请求并解压 gzip,导致 Response.Body 可直接读取明文,而 Content-Encoding 和 Content-Length 被移除。本文说明触发条件、验证方式以及如何保留原始压缩字节。156 收藏 -
使用 Go 的 httputil.ReverseProxy 和 Rewrite,把公网 /api 请求安全映射到后端 /internal 基路径,同时处理查询参数、转发头和后端错误。283 收藏 -
Golang · Go问答 | 23小时前 | WEB开发 · golang · HTTP · 响应头 · 接口排错 · Go net/http HTTP状态码 WriteHeader ResponseWriter
Go 的 ResponseWriter 在第一次 Write 时可能已经隐式提交 200 OK。本文解释为什么正文之后再设置状态码无效,并给出错误分支、响应头和业务结果的稳定写法。250 收藏 -
Golang · Go教程 | 23小时前 | 网络编程 · Go教程 · 进程通信 · Unix Socket · Go Unix Socket net.UnixConn ListenUnix DialUnix
Go 两个本地进程可以通过 Unix Socket 通信:服务端使用 ListenUnix 和 AcceptUnix,客户端使用 DialUnix,双方用换行或长度前缀约定消息边界。本文还说明 socket 文件清理、超时、权限和 unixpacket 的选择边界。418 收藏 -
Go 的 url.Parse 只验证输入能否解析成 URL 结构,不会验证 DNS、TCP、TLS 或 HTTP 服务。本文用分层检查和可超时的 net/http 示例区分解析成功与地址可达。388 收藏 -
Go 判断 IP 是否属于指定网段时,推荐用 net/netip 的 ParseAddr、ParsePrefix 和 Prefix.Contains。本文给出 IPv4/IPv6 示例,并说明非法输入、地址族不匹配、IPv4-mapped IPv6 与 IPv6 zone 的边界。188 收藏 -
Go 拼接 URL 时不要直接使用 filepath.Join:文件路径按操作系统规则处理,URL 需要保留 scheme、host、path、query 和编码边界。本文对比 filepath.Join、path.Join、url.JoinPath,并给出路径参数与查询参数的正确写法。387 收藏 -
Go 读取 PEM 证书时要先用 encoding/pem 解出 DER,再交给 crypto/x509 解析;本文给出读取 DNSNames、IPAddresses、NotAfter 和处理证书链的完整方法。254 收藏 -
Go encoding/csv 默认按首条记录校验后续列数,本文解释 ErrFieldCount 的原因,并给出固定列定位坏行、变长记录安全读取和字段策略选择方法。221 收藏