加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

教你搭建一个简单的Go Web服务器

发布时间:2019-05-10 20:10:23 所属栏目:业界 来源:码农程序
导读:本日给各人分享一篇搭建一个GO web处事器,HelloWorld!! Go说话尺度库 - net/http 在进修Go说话有一个很好的出发点,Go说话官方文档很具体,本日我们进修的Go Web处事器的搭建就必要用到Go说话官方提供的尺度库 net/http,通过http包提供了HTTP客户端和处事

上面代码执行监控端口之后,挪用了srv.Serve(net.Listener)函数,这个函数就是处理赏罚吸取客户端的哀求信 息。这个函数内里起了一个for{},起首通过Listener吸取哀求,其次建设一个 Conn,最后单独开了一个 goroutine,把这个哀求的数据当做参数扔给这个conn行止事:go c.serve()。这 个就是高并发浮现了, 用户的每一次哀求都是在一个新的goroutine行止事,彼此不影响。

  • 怎样分派handler?

conn起首会理会request:c.readRequest(),然后获取响应的handler:handler := c.server.Handler,也就是我们适才在挪用函数ListenAndServe时辰的第二个参数,我们前面例子转达的是nil,也就是为空,那么默认获取handler = DefaultServeMux,那么这个变量用来做什么的呢?对,这个变量就是一个路由器,它用来匹配url跳转到其响应的handle函数,那么这个我们有配置过吗?有,我们挪用的代码内里第一句不是挪用了http.HandleFunc("/", sayhelloName)嘛。这个浸染就是注册了哀求/的路由法则,当哀求uri为"/",路由就会转到函数sayhelloName,DefaultServeMux会挪用ServeHTTP要领,这个要领内部着实就是挪用sayhelloName自己,最后通过写入response的信息反馈到客户端。

一个http毗连处理赏罚流程

至此我们的三个题目已经所有获得相识答,你此刻对付Go怎样让Web跑起来的是否已经根基相识

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读