如何用最少的代码创建一个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.28at.com/showinfo-26-16258-0.html深入理解Go标准库-HTTP-Server的启动
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com