HTTP
已收录文章:40篇
-
Golang · Go问答 | 3星期前 | golang · 超时 · HTTP · Go问答 · Transport · 网络排查 · 连接超时 http.Transport Client.Timeout Go HTTP 客户端超时 TLS握手超时Go 的 http.Client 超时太粗时,DNS、建立连接、TLS 握手和响应读取会混在同一个等待里。本文用一段可复现的慢请求场景拆开 Transport 参数,给出基线指标、改动方案和复测边界。112 收藏
-
Go 服务突然出现 too many open files,先别急着把 ulimit 调大。更可靠的顺序是确认进程 FD 是否持续增长,区分网络连接、日志文件和管道,再用 /proc、lsof 与 Go pprof 找到没有关闭的资源,修复后复查增长曲线,必要时保留可回退的上限变更。255 收藏
-
Python 批量调用外部接口时,任务越多不一定越快。本文从订单补数任务的耗时基线出发,用 httpx 连接池、asyncio.Semaphore 和超时预算控制请求数量,并通过压测结果说明配置边界与排查方法。196 收藏
-
Golang · Go教程 | 3星期前 | golang · HTTP · go · 服务端 · 实战 · 安全配置 · http.server MaxBytesReader ReadHeaderTimeout Go HTTP 服务 请求体限制 响应头限制Go 的 http.Server 默认足够启动一个接口,却不会替业务限定大请求体、慢请求头和响应写入时间。本文用上传接口的真实边界,拆解 MaxBytesReader、ReadHeaderTimeout、WriteTimeout 与 MaxHeaderBytes 的职责,并给出可复查的生产配置。455 收藏
-
Go 转存远端文件时,io.ReadAll 适合小而且必须整体检查的内容;未知大小或大文件应使用 io.Copy 保持流式写入。本文用大小上限、临时文件、SHA-256 和长度核对给出可直接落地的选择方法。276 收藏
-
Go 服务重新发布后,用户仍拿到旧 JS 或旧 CSS,通常不是浏览器“没刷新”,而是入口 HTML 与带指纹资源用了同一套缓存策略。本文用 Cache-Control、ETag 和文件名指纹拆出一套可验证的静态资源发布方式。251 收藏
-
Golang · Go教程 | 3星期前 | HTTP · 路由 · Go教程 · Go1.22 · ServeMux · HTTP路由 ServeMux Go教程 Go1.22 PathValue 路由迁移Go 1.22 的 net/http ServeMux 支持方法匹配和路径通配符。本文从旧的前缀路由迁移到 GET /posts/{id},讲清 PathValue 取参、405 行为、静态路由优先级与冲突模式的测试方法。377 收藏
-
Golang · Go问答 | 3星期前 | 单元测试 · HTTP · Go问答 · httptest · ResponseRecorder · 单元测试 HTTP响应 httptest Go问答 ResponseRecorder Handler测试Go 用 httptest 写 Handler 单测时,常见现象是状态码为 0、响应头没生效,或读到的响应体为空。关键是区分 ResponseRecorder 的记录时机、WriteHeader 的提交边界,以及 Result 必须在 Handler 返回后再读取。文中给出可复用的最小测试和复查清单。481 收藏
-
Go 服务出现 too many open files 时,先不要只把 ulimit 调大。更可靠的处理顺序是确认 FD 是否持续增长、按类型定位 HTTP 响应体/文件/SQL Rows 的释放缺口、在小流量修复后观察 FD 回落,再决定是否需要调整进程限额。文章给出可直接照着做的线上判断、代码修复、回退和告警检查。115 收藏
-
Golang · Go问答 | 3星期前 | HTTP · ResponseWriter · net/http · Go问答 · 后端排错 · Go WriteHeader ResponseWriter HTTP 状态码 superfluous response.WriteHeaderGo 服务日志出现 superfluous response.WriteHeader,通常不是框架故障,而是同一个请求路径已经写出最终状态码,后续分支又继续写了一次。文章用一个订单创建接口复现问题,解释 Write 与 WriteHeader 的先后边界,并给出 return 收口、响应助手分层和 httptest 回归检查的最小修复方案。258 收藏
-
从一个大租户挤占接口容量的场景出发,讲清 Go 服务如何按全局、租户和路由拆分限流边界,单实例如何用 x/time/rate 落地,以及多实例为什么需要共享预算。294 收藏
-
Golang · Go教程 | 3星期前 | HTTP · Go教程 · 服务治理 · Shutdown · SIGTERM · SIGTERM Go 优雅关闭 http.Server Shutdown Go HTTP 服务 连接收尾 服务下线Go HTTP 服务下线时,直接退出会打断进行中的请求;只调用 Shutdown 又可能无限等待。本文结合 net/http 官方行为说明信号接收、流量摘除、超时预算、长连接和依赖收尾应该怎样拆分。316 收藏