登录
首页 >  Golang >  Go教程

Golang搭建简单Web服务器教程

时间:2026-01-29 21:07:38 123浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《Golang实现简单Web服务器教程》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

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

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

用 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)、开发时加日志方便调试。

今天关于《Golang搭建简单Web服务器教程》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>