Go net/http

net/http 是 Go 标准库里的 HTTP 服务器与客户端基础抽象,也是理解 Go Web 开发边界的第一站。

#type / concept #status / growing #tech / dev / backend #resource / go

[!info] related notes

Go net/http

一句话定义

net/http 是 Go 标准库提供的 HTTP 基础抽象,负责把请求、响应、路由处理和客户端调用组织成统一接口。

核心机制 / 工作原理

学习 net/http 时最重要的不是先记某个框架 API,而是先理解标准库提供的几个基本角色:

  • http.Handler
  • http.HandlerFunc
  • http.Request
  • http.ResponseWriter

这套抽象决定了:

  • 请求是如何进入业务逻辑的
  • 响应是如何被写出的
  • 中间件和包装器为什么常常长成那个样子

最小例子 / 最小场景

http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("hello"))
})

http.ListenAndServe(":8080", nil)

这个例子里最重要的心智是:

  • 路由处理本质上就是把一个函数适配成 Handler
  • HTTP 服务不是神秘框架行为,而是标准库接口协作

为什么这部分重要

哪怕后面使用 Gin、Echo 或其他框架,理解 net/http 也能帮助你看懂:

  • 请求生命周期
  • 中间件本质
  • 超时、取消和上下文传递

边界与易混淆点

  • net/http 是基础抽象,不等于必须手写所有框架能力
  • 服务端和客户端都在这个包体系里,但它们的使用心智不同
  • 路由只是表层,真正复杂的通常是边界、超时和数据流转
创建于 2026/6/20 更新于 2026/6/20