Go教程技术文章
-
Go 访问内网 HTTPS 服务时,用 x509.CertPool 加载自签名 CA 并注入 tls.Config.RootCAs,保留证书链与主机名校验。192 收藏 -
用 Go 标准库为内部 HTTP 工具增加 Basic 认证,讲清服务端 BasicAuth、客户端 SetBasicAuth、401 挑战、HTTPS 和凭据校验边界。285 收藏 -
用 Go net/http 为静态资源设置稳定 ETag,配合 If-None-Match 返回 304,减少未变化文件的重复传输,并说明 ServeContent、Seek、Range 与资源更新的边界。322 收藏 -
Golang · Go教程 | 17小时前 | HTTP · sse · Go教程 · 实时推送 · Go EventSource SSE Server-Sent Events http.Flusher
Go 写 SSE 接口时,关键不是循环写字符串,而是正确设置 text/event-stream、用 http.Flusher 刷新缓冲,并用 Request.Context 感知浏览器断开。本文给出可落地的 Go 服务端与浏览器接收示例,补充心跳、代理缓冲和重连边界。215 收藏 -
用一个可复用的 ResponseWriter 包装器统一记录 Go HTTP 请求的状态码和响应大小,覆盖隐式 200、空响应、重复 WriteHeader 与 Flusher 边界。175 收藏 -
使用 Go 的 httputil.ReverseProxy 和 Rewrite,把公网 /api 请求安全映射到后端 /internal 基路径,同时处理查询参数、转发头和后端错误。283 收藏 -
Golang · Go教程 | 17小时前 | 网络编程 · Go教程 · 进程通信 · Unix Socket · Go Unix Socket net.UnixConn ListenUnix DialUnix
Go 两个本地进程可以通过 Unix Socket 通信:服务端使用 ListenUnix 和 AcceptUnix,客户端使用 DialUnix,双方用换行或长度前缀约定消息边界。本文还说明 socket 文件清理、超时、权限和 unixpacket 的选择边界。418 收藏 -
Go 判断 IP 是否属于指定网段时,推荐用 net/netip 的 ParseAddr、ParsePrefix 和 Prefix.Contains。本文给出 IPv4/IPv6 示例,并说明非法输入、地址族不匹配、IPv4-mapped IPv6 与 IPv6 zone 的边界。188 收藏 -
Go 读取 PEM 证书时要先用 encoding/pem 解出 DER,再交给 crypto/x509 解析;本文给出读取 DNSNames、IPAddresses、NotAfter 和处理证书链的完整方法。254 收藏 -
使用 golang.org/x/net/html 解析网页中的 a[href],再用 net/url 按页面基准地址补全相对链接,并说明片段、特殊 scheme 与外链控制的处理边界。298 收藏 -
Go 处理带 BOM 的 UTF-16 文件时,可以用 golang.org/x/text 的 unicode 与 transform 按 BOM 识别大小端,再流式写出 UTF-8。本文给出临时文件替换方案,并说明缺少 BOM、乱码和并发写入的边界。401 收藏 -
Go 的 encoding/gob 适合在 Go 程序之间保存结构化本地缓存。本文用带版本和过期时间的结构体演示原子写入、恢复、缓存失效处理,以及导出字段和结构体演进时的边界。472 收藏 -
用 encoding/xml.Decoder 按 Token 扫描大型 XML,只在命中目标元素时 DecodeElement,并用 Skip 跳过无关大节点,降低整体加载带来的内存峰值。470 收藏 -
用 encoding/binary 按协议选择 BigEndian 或 LittleEndian,正确读写固定宽度整数,区分结构体布局、切片边界和 Uvarint 变长编码。459 收藏 -
用 io.Pipe 把 Go 的数据生成器直接接到 HTTP 请求体,边编码边上传,不落地临时文件,并正确处理关闭、取消和错误传递。456 收藏