全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何使用Golang实现简单Web服务器_创建HTTP路由和响应处理

用Go标准库net/http可轻松编写轻量Web服务器:定义func(http.ResponseWriter, *http.Request)类型处理函数,用http.HandleFunc注册路由,调用http.ListenAndServe启动服务;支持手动解析路径参数和返回JSON响应。

用 Go 写一个简单 Web 服务器非常轻量,标准库 net/http 就够用了,不需要额外框架。核心是注册路由(URL路径)和绑定处理函数,再启动服务。

定义 HTTP 处理函数

每个路由对应一个函数,类型必须是 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)

返回 JSON 响应

Web API 常需返回 JSON。注意设置正确的 Header,并用 json.Encoderjson.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小时内与您取得联系。