Go 的 net/http 包可快速启动轻量 Web 服务器:几行代码调用 http.HandleFunc 和 http.ListenAndServe 即可上线;支持手动判断 r.Method 实现方法路由,用 r.URL.Query()、r.FormValue() 和 json.Decode() 处理各类请求数据;通过 w.WriteHeader() 和 w.Header().Set() 精确控制响应状态码与 Header。

用 Go 的 net/http 包启动一个 Web 服务器非常简单,几行代码就能跑起来,适合快速验证逻辑、搭建 API 或静态服务。
基础 HTTP 服务器:几行代码就上线
Go 标准库自带的 net/http 不需要额外安装,直接导入即可。最简服务只需调用 http.ListenAndServe,并注册一个处理函数:
- 使用
http.HandleFunc注册路径和响应逻辑(比如"/"对应首页) - 用
http.ListenAndServe(":8080", nil)启动服务,监听本地 8080 端口 - 处理函数接收
http.ResponseWriter和*http.Request,通过w.Write([]byte(...))返回内容
示例:
func main() {http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
w.Write([]byte("Hello from Go!"))
})
log.Println("Server starting on :8080")
http.ListenAndServe(":8080", nil)
}
路由进阶:区分方法与路径
net/http 默认不区分 HTTP 方法(GET/POST),需手动判断 r.Method:
立即学习“go语言免费学习笔记(深入)”;
Destoon B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案。系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放。模型化的开发思路,可扩展或删除任何功能;创新的缓存技术与数据库设计,可负载千万级别数据容量及访问。 系统特性1、跨平台。支持Linux/Unix/Windows服务器,支持Apache/IIS/Zeus等2、跨浏览器。基于最新Web标准构建,在
- 在处理函数中用
if r.Method == "POST"分支处理不同请求类型 - 用
r.URL.Path获取访问路径,实现简易路由(如/api/users) - 对不支持的方法返回
http.StatusMethodNotAllowed(405)更规范
读取请求数据:表单、查询参数与 JSON
根据客户端传参方式选择对应方法:
-
r.URL.Query().Get("key")读取 URL 查询参数(如?name=alice) -
r.FormValue("field")自动解析application/x-www-form-urlencoded或 multipart 表单 - 读 JSON:先
r.ParseBody()(可选),再用json.NewDecoder(r.Body).Decode(&v)
返回结构化响应:设置状态码与 Header
别只依赖默认 200,合理使用状态码和 Header 提升健壮性:
- 用
w.WriteHeader(http.StatusNotFound)明确返回 404 - 设置 JSON 响应:
w.Header().Set("Content-Type", "application/json") - 写入 JSON 数据:
json.NewEncoder(w).Encode(map[string]string{"msg": "ok"})
基本上就这些。不需要框架也能写出清晰、可控的 HTTP 服务,net/http 足够轻量又足够可靠。









