2.1goweb内置的 net/http 包

06-01 1961阅读

HTTP 服务器实现

Go 内置的 net/http 包是最基础的 HTTP 服务器实现,无需依赖第三方库

package main
import (
    "fmt"
    "log"
    "net/http"
)
func main() {
    // 匿名注册路由和处理函数
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World! %s", r.URL.Path)
    })
    //注册api路径路由和处理函数
    http.HandleFunc("/api", apiHandler)
    // 启动服务器(监听 80 端口)
    log.Println("服务器启动在 :80")
    log.Fatal(http.ListenAndServe(":80", nil))
}
func apiHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "API 路径: %s", r.URL.Path)
}

go标准库中文文档地址 Go语言中文网 

Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国Go语言文档中文版,Go语言中文网,中国 Golang 社区,Go语言学习园地,致力于构建完善的 Golang 中文社区,Go语言爱好者的学习家园。分享 Go 语言知识,交流使用经验https://studygolang.com/pkgdoc

http.ListenAndServe 

http.ListenAndServe(addr string, handler Handler) error 是 Go 标准库中启动 HTTP 服务器的入口函数,主要作用包括:

  1. 监听地址:通过 addr 参数指定监听地址(如 ":8080")。
  2. 处理器注册:handler 参数为 HTTP 请求处理器(可为 nil,默认使用 DefaultServeMux 路由)。
  3. 错误处理:返回错误信息(如端口占用)。

当 handler 为 nil 时,默认使用 http.DefaultServeMux 路由表,开发者可通过 http.HandleFunc() 或 http.Handle() 注册路由逻辑

底层实现细节​
server := &Server{
    Addr:  addr,
    Handler: handler,
}
return server.ListenAndServe()

 http.Server结构体关键字段​​

type Server struct {
    Addr            string        // 监听地址(默认":http"即80端口)
    Handler         Handler       // 请求处理器(默认DefaultServeMux)
    ReadTimeout     time.Duration // 读取请求超时(含Header和Body)
    WriteTimeout    time.Duration // 写入响应超时(从接收请求开始计时)
    IdleTimeout     time.Duration // 空闲连接超时(默认使用ReadTimeout)
    MaxHeaderBytes  int           // 请求头最大字节数(默认1MB)
    TLSConfig       *tls.Config   // TLS配置(用于HTTPS)
    ConnState       func(net.Conn, ConnState) // 连接状态回调
    ErrorLog        *log.Logger   // 错误日志记录器
}

通过http.Server结构体配置服务器参数

srv := &http.Server{
    Addr:         ":8080",
    ReadTimeout:  10 * time.Second,
    WriteTimeout: 10 * time.Second,
    IdleTimeout:  120 * time.Second,
    MaxHeaderBytes: 1 
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码