当前位置:首页 > 科技  > 软件

深入理解Go标准库-HTTP-Server的启动

来源: 责编: 时间:2023-11-01 09:18:07 202观看
导读如何用最少的代码创建一个HTTP server?package mainimport ( "net" "net/http")func main() { // 方式1 err := http.ListenAndServe(":8080", nil) if err != nil { panic(err) }}点开http.ListenAndServe可以看到

如何用最少的代码创建一个HTTP server?vPf28资讯网——每日最新资讯28at.com

package mainimport ( "net" "net/http")func main() { // 方式1 err := http.ListenAndServe(":8080", nil) if err != nil {   panic(err) }}

点开http.ListenAndServe可以看到函数只是创建了Server类型并调用server.ListenAndServe()vPf28资讯网——每日最新资讯28at.com

所以下面的和上面的代码没有区别vPf28资讯网——每日最新资讯28at.com

package mainimport ( "net" "net/http")func main() { // 方式2 server := &http.Server{Addr: ":8080"} err := server.ListenAndServe() if err != nil {  panic(err) }}

ListenAndServe()如其名会干两件事vPf28资讯网——每日最新资讯28at.com

  • 监听一个端口,即Listen的过程
  • 处理进入端口的连接,即Serve的过程

所以下面的代码和上面的代码也没区别vPf28资讯网——每日最新资讯28at.com

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) }}

一张图展示三种使用方式vPf28资讯网——每日最新资讯28at.com

图片图片vPf28资讯网——每日最新资讯28at.com

路由?no!Handler!

按上面的代码启动HTTP Server没有太大意义,因为我们还没有设定路由,所以无法正常响应请求vPf28资讯网——每日最新资讯28at.com

$ curl  127.0.0.1:8080 404 page not found

暂停思考一下,服务器返回404是因为没有设定路由么?no,no,no,你需要转变一下思维。服务器返回404不是因为我们没有设置路由,而是因为没有设置请求的处理程序,这个处理程序在Go中叫作:Handler!vPf28资讯网——每日最新资讯28at.com

type Handler interface { ServeHTTP(ResponseWriter, *Request)}

本文链接:http://www.28at.com/showinfo-26-16258-0.html深入理解Go标准库-HTTP-Server的启动

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 快速入门Python Django模型实例!

下一篇: Tailwind CSS vs 现代CSS,Tailwind CSS 会像CSS-in-JS 一样亡?

标签:
  • 热门焦点
Top