如何用最少的代碼創建一個HTTP server?
package mainimport ( "net" "net/http")func main() { // 方式1 err := http.ListenAndServe(":8080", nil) if err != nil { panic(err) }}
點開http.ListenAndServe可以看到函數只是創建了Server類型并調用server.ListenAndServe()
所以下面的和上面的代碼沒有區別
package mainimport ( "net" "net/http")func main() { // 方式2 server := &http.Server{Addr: ":8080"} err := server.ListenAndServe() if err != nil { panic(err) }}
ListenAndServe()如其名會干兩件事
所以下面的代碼和上面的代碼也沒區別
package mainimport ( "net" "net/http")func main() { // 方式3 ln, err := net.Listen("tcp", ":8080") if err != nil { panic(err) } server := &http.Server{} err = server.Serve(ln) if err != nil { panic(err) }}
一張圖展示三種使用方式
圖片
按上面的代碼啟動HTTP Server沒有太大意義,因為我們還沒有設定路由,所以無法正常響應請求
$ curl 127.0.0.1:8080 404 page not found
暫停思考一下,服務器返回404是因為沒有設定路由么?no,no,no,你需要轉變一下思維。服務器返回404不是因為我們沒有設置路由,而是因為沒有設置請求的處理程序,這個處理程序在Go中叫作:Handler!
type Handler interface { ServeHTTP(ResponseWriter, *Request)}
本文鏈接:http://www.tebozhan.com/showinfo-26-16258-0.html深入理解Go標準庫-HTTP-Server的啟動
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com