Go教程技术文章
-
Go 的 URL.Path 是解码后的路径语义,EscapedPath() 面向转义表示;本文用 %2F 示例说明路由匹配、日志记录和请求拼接时该怎么选。275 收藏 -
用 Go httptest.NewRequest 构造 Handler 入站测试请求:绝对 URL 提供 Host,https scheme 提供非 nil 的 dummy TLS 状态,并说明请求体 ContentLength、Host 覆盖以及与真实 TLS 服务端的边界。479 收藏 -
用 Go httptest.ResponseRecorder 测试 Handler 时,区分 Code、Result 和 WriteHeader 的读取时机,准确断言最终状态码。415 收藏 -
Go CookieJar 在本地 HTTP 测试中不发送 Secure Cookie,通常是 http scheme 不满足 Secure 属性。本文拆开保存、筛选与客户端注入职责,说明 HTTPS 测试和普通 HTTP 单测的选择边界。249 收藏 -
Golang · Go教程 | 15小时前 | HTTP · 重定向 · Cookie · Go教程 · net/http · Cookie会话 Go CookieJar net/http/cookiejar Go重定向 http.Client.Jar
Go 的重定向请求想继续使用会话 Cookie,关键不是手工复制 Cookie,而是让同一个 http.Client 挂载 cookiejar.Jar。本文从两跳小项目出发,说明 Set-Cookie 如何进入 Jar、后续请求如何匹配,并梳理 Domain、Path、Secure、CheckRedirect 和客户端复用边界。424 收藏 -
Go mime.FormatMediaType 可以把媒体类型和参数 map 序列化为规范字符串,自动处理名称小写、参数排序、引号转义和非 ASCII 参数编码。本文给出最小写法,并说明非法输入返回空字符串的边界。184 收藏 -
Go 的 mime.ParseMediaType 能按 MIME 规则解析 Content-Type 参数。本文说明带引号、分号和转义值如何还原,参数名为何使用小写读取,以及语法错误和业务类型不匹配时怎样处理。186 收藏 -
Go 基准测试的计时控制实际位于 testing.B。本文用 B.Loop、StopTimer、StartTimer 和 ResetTimer 排除输入准备成本,并说明并行基准的限制。372 收藏 -
用 io.NewSectionReader 限定大文件分片范围,再通过 io.TeeReader 同时写入输出流并计算 SHA-256。本文给出边界检查、短读处理和多分片拆分的完整写法。369 收藏 -
用一个实现 io.Reader 的限速包装器接入 io.Copy,让文件或请求体的复制链路按字节速率发送,文章同时说明读取粒度、突发流量、错误处理和并发复用边界。200 收藏 -
用 Go 的 io.LimitedReader 控制流式读取上限,说明 N、n、EOF 与底层输入的关系,并给出读取固定片段和继续处理剩余数据的实用写法。307 收藏 -
Golang · Go教程 | 2天前 | HTTP · go · Cookie · 跨域 · cors · cookie Go cors net/http SameSite 跨站请求 http.Cookie
Go 的 net/http 可以通过 Cookie.SameSite 表达 Strict、Lax 和 None 三种跨站发送策略,但浏览器是否真正带上 Cookie 还取决于 Secure、fetch credentials 和 CORS。本文从一个跨站会话场景拆开这些配置的职责边界。399 收藏 -
Golang · Go教程 | 2天前 | 缓存 · HTTP · go · Go net/http 静态文件 Cache-Control ETag If-Modified-Since ServeFile
用 net/http ServeFile 提供静态文件时,Last-Modified 和 If-Modified-Since 可以由文件修改时间驱动条件响应;ETag 与 Cache-Control 则需要业务方明确设置。本文从一个文件处理器拆开这些响应头的职责边界,并说明路径拼接、304 和缓存失效的常见陷阱。136 收藏 -
ServeMux 的匹配不是简单比较路径字符串,而是综合方法、主机和路径,并按请求集合的具体程度选择模式。本文用请求生命周期拆解通配符、优先级、405、尾斜杠和 Go 1.22 兼容边界。207 收藏 -
围绕 time.Ticker 的动态改周期、永久停止和停止后复用,讲清 Reset、Stop 与 C 通道之间的调用顺序,避免重复创建和并发竞态。208 收藏