说在前面
- 实验环境:【go/vscode】远程环境搭建(离线版/gopls版)
- 客户端环境:chrome 84.0.4
- 俩本好书:Go语言高级编程、Go语言圣经
实验要求
- 搭建一个简单的http服务器,可以对http请求进行响应,例如:
页面返回http://127.0.0.1:8080/add?text=123456
123456
代码
- 实验较为简单,直接上代码
package main import ( "fmt" "log" "net/http" ) func RecordHandler(w http.ResponseWriter, r *http.Request) { values := r.FormValue("content") if values == "" { fmt.Fprintf(w, "try to use \"/echo?content=xxx!\"") return } fmt.Fprintf(w, values) } func main() { mux := http.NewServeMux() mux.HandleFunc("/echo", RecordHandler) server := &http.Server{ Addr: ":8081", Handler: mux, } err := server.ListenAndServe() if err != nil { if err == http.ErrServerClosed { log.Print("Server closed under request") } else { log.Fatal("Server closed unexpected") } } }
分析
- 如果使用其他框架,例如
nodejs
或者基于python
的pyweb
,其实会发现这个构建步骤十分相似,基本上是创建服务,构建路由并绑定handler
,然后开启监听。 - 想要了解具体的实现请参考学习用Go编写HTTP Server以及golang 构建HTTP服务
http.Request
实验结果