使用Go语言创建一个简单的HTTP服务器的示例代码

Written by

in

文章目录
  • Go 语言天生支持网络编程,其标准库 net/http 内置了完整的 HTTP 协议处理能力,语法简洁、性能优越,非常适合用于构建高性能 Web 服务和 API 服务。 优势包括: • 内置 HTTP 支持 • 简洁的并发模型(Goroutine) • 部署简单,编译为单个可执行文件 • 高性能、跨平台
  • package main import ( “fmt” “log” “net/http” “time” ) // 根路径处理器 func helloHandler(w http.ResponseWriter, r *http.Request) { log.Printf(“访问路径:%s,来源:%sn”, r.URL.Path, r.RemoteAddr) fmt.Fprintf(w, “Hello, World! 👋”) } // /time 路径处理器 func timeHandler(w http.ResponseWriter, r *http.Request) { log.Printf(“访问路径:%s,来源:%sn”, r.URL.Path, r.RemoteAddr) currentTime := time.Now().Format(“2006-01-02 15:04:05”) fmt.Fprintf(w, “当前服务器时间:%s”, currentTime) } func main() { // 注册路由处理器 http.HandleFunc(“/”, helloHandler) http.HandleFunc(“/time”, timeHandler) // 启动 HTTP 服务 port := “:8080” log.Printf(“启动 HTTP 服务,监听端口 %sn”, port) err := http.ListenAndServe(port, nil) if err != nil { log.Fatalf(“服务器启动失败:%v”, err) } }
  • 这个 HTTP 服务虽然简单,但它是后续进阶的基础。你可以继续扩展它: 使用 http.ServeMux 自定义路由器 增加静态文件服务(如 HTML/CSS/JS) 加入 JSON 接口支持 加入日志中间件 将服务并发能力与 Goroutine、Channel 结合
  • 通过本篇,你已经成功用 Go 构建了一个完整的 HTTP 服务。这个项目虽然小巧,但是搭建微服务、开发 REST API、构建高并发服务的基础之一。 到此这篇关于使用Go语言创建一个简单的HTTP服务器的示例代码的文章就介绍到这了,更多相关Go创建HTTP服务器内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Go Fiber快速搭建一个HTTP服务器 Golang使用Channel组建高并发HTTP服务器 Golang搭建HTTP服务器 Golang实现简单http服务器的示例详解 Django使用HTTP协议向服务器传参方式小结
  • 目录
    • 一、为什么选择 Go 来开发 HTTP 服务?
    • 二、基础目标:构建一个本地 HTTP 服务
      • 功能需求:
    • 三、完整示例代码
      • 四、运行与测试
        • 运行命令:
        • 访问方式:
      • 五、进阶建议
        • 六、小结

          Go 语言天生支持网络编程,其标准库 net/http 内置了完整的 HTTP 协议处理能力,语法简洁、性能优越,非常适合用于构建高性能 Web 服务和 API 服务。

          优势包括:

          • • 内置 HTTP 支持
          • • 简洁的并发模型(Goroutine)
          • • 部署简单,编译为单个可执行文件
          • • 高性能、跨平台

          • • 启动后监听本地端口(例如 8080)
          • • 支持根路径 / 请求并返回“Hello, World!”
          • • 支持 /time 请求,返回当前服务器时间
          • • 日志输出每个请求的路径和来源 IP

          package main
          
          import (
              "fmt"
              "log"
              "net/http"
              "time"
          )
          
          // 根路径处理器
          func helloHandler(w http.ResponseWriter, r *http.Request) {
              log.Printf("访问路径:%s,来源:%sn", r.URL.Path, r.RemoteAddr)
              fmt.Fprintf(w, "Hello, World! 👋")
          }
          
          // /time 路径处理器
          func timeHandler(w http.ResponseWriter, r *http.Request) {
              log.Printf("访问路径:%s,来源:%sn", r.URL.Path, r.RemoteAddr)
              currentTime := time.Now().Format("2006-01-02 15:04:05")
              fmt.Fprintf(w, "当前服务器时间:%s", currentTime)
          }
          
          func main() {
              // 注册路由处理器
              http.HandleFunc("/", helloHandler)
              http.HandleFunc("/time", timeHandler)
          
              // 启动 HTTP 服务
              port := ":8080"
              log.Printf("启动 HTTP 服务,监听端口 %sn", port)
              err := http.ListenAndServe(port, nil)
              if err != nil {
                  log.Fatalf("服务器启动失败:%v", err)
              }
          }
          

          go run main.go
          

          1. 打开浏览器访问:
            • http://localhost:8080/ 会显示 `Hello, World!
            • http://localhost:8080/time 会显示当前服务器时间
          2. 使用 curl 测试:
          curl http://localhost:8080/
          curl http://localhost:8080/time
          

          这个 HTTP 服务虽然简单,但它是后续进阶的基础。你可以继续扩展它:

          • 使用 http.ServeMux 自定义路由器
          • 增加静态文件服务(如 HTML/CSS/JS)
          • 加入 JSON 接口支持
          • 加入日志中间件
          • 将服务并发能力与 Goroutine、Channel 结合

          通过本篇,你已经成功用 Go 构建了一个完整的 HTTP 服务。这个项目虽然小巧,但是搭建微服务、开发 REST API、构建高并发服务的基础之一。

          到此这篇关于使用Go语言创建一个简单的HTTP服务器的示例代码的文章就介绍到这了,更多相关Go创建HTTP服务器内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

          您可能感兴趣的文章:

          • Go Fiber快速搭建一个HTTP服务器
          • Golang使用Channel组建高并发HTTP服务器
          • Golang搭建HTTP服务器
          • Golang实现简单http服务器的示例详解
          • Django使用HTTP协议向服务器传参方式小结

          站内搜索