Go语言技术文章
-
Golang · Go教程 | 1个月前 | Cookie · Go教程 · net/http · HTTP客户端 · Go cookies http.CookieJar SetCookies Cookie顺序
区分 Response.Cookies、Jar.SetCookies 与 Jar.Cookies 三条路径,按 URL 作用域判断 Go http.CookieJar 的可发送 Cookie,并解释同名 Cookie 按最长 Path、最早创建时间返回的顺序规则。388 收藏 -
Go 的 initorder 是编译器内部的初始化依赖分析,不是应用层排序 API。本文用显式包级依赖、单一初始化器和 init 边界说明如何稳定表达初始化顺序。253 收藏 -
net/textproto 的 ReadMIMEHeader 没有公开的大小参数。本文区分自定义文本协议与 HTTP 服务端两种场景,分别用受限 reader 和 Server.MaxHeaderBytes 控制头部边界,并说明超时、头部值数量和请求体限制的区别。191 收藏 -
从 initialization cycle、全局变量为空和 init 启动异常入手,解释 Go initorder 背后的包级依赖规则,并给出最小复现、依赖排查和显式构造的修复方法。196 收藏 -
Go 使用 net/textproto.ReadMIMEHeader 报非法字段时,按缺少冒号、字段名 token、字段值字节和首行缩进四个边界定位,并用原始转义与十六进制日志修复上游输入。471 收藏 -
本文从 go/types.Info.InitOrder 出发,说明 Go 如何整理包级变量初始化项,并用 AST 与类型检查代码读取 Lhs、Rhs,区分 init 函数、跨包顺序和隐藏依赖。374 收藏 -
用 Go net/textproto 读取原始 HTTP 风格请求头,掌握 ReadMIMEHeader、重复字段、续行、键名规范化和输入长度边界。434 收藏 -
Go 泛型类型推断不会单独替你选择更窄的类型范围:实参或上下文先给出候选类型,约束再检查它是否允许。本文比较 any、方法约束和类型集合约束,并说明推断失败时的显式写法。102 收藏 -
Go 控制 multipart 请求体积不能只调大或调小 maxMemory。本文用 MaxBytesReader 限制总 body,用 ParseMultipartForm 管理解析内存,再用 MultipartReader 和 LimitReader 控制单个 part,补上数量、临时文件和错误处理边界。493 收藏 -
Go 泛型函数的类型推断失败,通常不是函数体问题,而是普通实参、赋值上下文或类型约束没有共同解。本文用最小示例拆解常见报错,并给出显式实例化和边界检查方法。114 收藏 -
Golang · Go教程 | 1个月前 | HTTP · 文件上传 · Go教程 · 错误排查 · 文件上传 Go multipart/form-data mime/multipart boundary
Go 的 mime/multipart 报错时,先检查 Content-Type 里的 boundary,再对照请求体分隔线、CRLF、结束标记和 ReadForm 限制。本文给出发送端与解析端的稳定写法和排查清单。197 收藏 -
Go 类型推断会从泛型函数的普通实参、赋值上下文和类型约束中补全类型参数。本文用命名切片、无类型常量和部分显式参数说明推断路径,并整理泛型类型不能省略参数的边界。364 收藏 -
Go 处理 multipart/form-data 时,不必手写字符串切割 Header。使用 Part.FormName 读取 name,使用 FileName 判断文件字段,再按场景选择 MultipartReader 或 ParseMultipartForm。225 收藏 -
Go 没有直接限制 embedding 层级的语法。想控制外层 API,应把匿名嵌入改为命名字段并用包装方法转发;窄接口只能限制调用方的静态视图,遮蔽也不会删除底层成员。124 收藏 -
Go compress/gzip 默认会把连续 gzip 成员合并读取,第一次 io.EOF 不一定代表单个成员结束。本文用 Multistream(false)、Reset 和 bufio.Reader 区分成员边界、正常尾部与损坏数据。322 收藏