用Go标准库net/http可轻松编写轻量Web服务器:定义func(http.ResponseWriter, *http.Request)类型处理函数,用http.HandleFunc注册路由,调用http.ListenAndServe启动服务;支持手动解析路径参数和返回JSON响应。
用 Go 写一个简单 Web 服务器非常轻量,标准库 net/http 就够用了,不需要额外框架。核心是注册路由(URL路径)和绑定处理函数,再启动服务。
每个路由对应一个函数,类型必须是 func(http.ResponseWriter, *http.Request)。第一个参数用于写响应内容,第二个是请求对象,可读取 URL、Header、Body 等。
例如:
func homeHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
fmt.Fprintln(w, "欢迎访问首页")
}
使用 http.HandleFunc 把路径和处理函数关联起来;然后调用 http.ListenAndServe 启动监听。
常见做法:
"/" 绑定首页处理函数"/api/users" 可绑定不同逻辑":8080"(冒号开头表示监听所有接口)nil 表示使用默认的 http.DefaultServeMux
func main() {
http.HandleFunc("/", homeHandler)
http.HandleFunc("/about", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "关于我们")
})
fmt.Println("服务器运行在 :8080")
http.ListenAndServe(":8080", nil)
}
标准库不直接支持 /user/:id 这类动态路由,但可以用简单字符串处理或第三方库(如 gorilla/mux)。如果不想引入依赖,可手动解析 r.URL.Path:
func userHandler(w http.ResponseWriter, r *http.Request) {
path := strings.TrimPrefix(r.URL.Path, "/user/")
if path == "" {
http.Error(w, "缺少用户ID", http.StatusBadRequest)
return
}
fmt.Fprintf(w, "查看用户: %s", path)
}
// 注册为 /user/
http.HandleFunc("/user/", userHandler)
Web API 常需返回 JSON。注意设置正确的 Header,并用 json.Encoder 或 json.Marshal 编码数据:
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
func apiUserHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
json.NewEncoder(w).Encode(User{ID: 1, Name: "张三"})
}
不复杂但容易忽略:记得检查错误(比如 json.Encoder.Encode 可能失败)、避免在 handler 中 panic(可用中间件 recover)、开
发时加日志方便调试。
# js
# json
# go
# golang
# 编码
# app
# 端口
# usb
# ai
# 路由
# 标准库
# 中间件
# 字符串
# 接口
# nil
# 对象
# http
# 绑定
# 第二个
# 首页
# 第一个
# 不需要
# 可以用
# 用了
# 这类
# 关于我们
# 欢迎访问
相关文章:
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
如何通过服务器快速搭建网站?完整步骤解析
如何在宝塔面板中修改默认建站目录?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
已有域名和空间如何快速搭建网站?
详解jQuery停止动画——stop()方法的使用
北京网站制作公司哪家好一点,北京租房网站有哪些?
设计网站制作公司有哪些,制作网页教程?
如何用腾讯建站主机快速创建免费网站?
建站之星安装模板失败:服务器环境不兼容?
如何快速生成凡客建站的专业级图册?
宝塔新建站点报错如何解决?
建站之星云端配置指南:模板选择与SEO优化一键生成
如何选择高效稳定的ISP建站解决方案?
如何选择适配移动端的WAP自助建站平台?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站主机空间推荐 高性价比配置与快速部署方案解析
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
营销式网站制作方案,销售哪个网站招聘效果最好?
Swift中switch语句区间和元组模式匹配
定制建站模板如何实现SEO优化与智能系统配置?18字教程
如何通过西部数码建站助手快速创建专业网站?
如何通过WDCP绑定主域名及创建子域名站点?
动图在线制作网站有哪些,滑动动图图集怎么做?
代刷网站制作软件,别人代刷火车票靠谱吗?
完全自定义免费建站平台:主题模板在线生成一站式服务
视频网站制作教程,怎么样制作优酷网的小视频?
,购物网站怎么盈利呢?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何规划企业建站流程的关键步骤?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何通过宝塔面板实现本地网站访问?
专业网站建设制作报价,网页设计制作要考什么证?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
如何在景安服务器上快速搭建个人网站?
建站之星展会模版如何一键下载生成?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
如何快速生成可下载的建站源码工具?
如何通过二级域名建站提升品牌影响力?
宝塔面板创建网站无法访问?如何快速排查修复?
宁波免费建站如何选择可靠模板与平台?
如何高效完成独享虚拟主机建站?
如何正确选择百度移动适配建站域名?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
深入理解Android中的xmlns:tools属性
,如何利用word制作宣传手册?
建站之星收费标准详解:套餐费用及年费价格表一览
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
成都网站制作公司哪家好,四川省职工服务网是做什么用?
*请认真填写需求信息,我们会在24小时内与您取得联系。