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

Go语言使用HTTP包创建WEB服务器的方法

发布时间:2020-12-16 19:30:45 所属栏目:大数据 来源:网络整理
导读:本篇章节讲解Go语言使用HTTP包创建WEB服务器的方法。供大家参考研究具体如下: 在Golang中写一个http web服务器大致是有两种方法: 1 使用net包的net.Listen来对端口进行监听 2 使用net/http包 这里是讨论如何使用net/http包创建一个web服务器 net

本篇章节讲解Go语言使用HTTP包创建WEB服务器的方法。分享给大家供大家参考,具体如下:

在Golang中写一个http web服务器大致是有两种方法:

1 使用net包的net.Listen来对端口进行监听

2 使用net/http包

这里是讨论如何使用net/http包创建一个web服务器

net/http请求提供了HTTP客户端和服务端的具体实现

http客户端

先看到的是Get,Post,PostForm三个函数。这三个函数直接实现了http客户端

复制代码 代码如下:
import (
    "fmt"
    "net/http"
    "io/ioutil"
)
func main() {
    response,_ := http.Get("http://www.baidu.com")
    defer response.Body.Close()
    body,_ := ioutil.ReadAll(response.Body)
    fmt.Println(string(body))
}

除了使用这三个函数来建立一个简单客户端,还可以使用:

http.Client和http.NewRequest来模拟请求

复制代码 代码如下:
package main
import (
    "net/http"
    "io/ioutil"
    "fmt"
)
func main() {
    client := &http.Client{}
    reqest,_ := http.NewRequest("GET","http://www.baidu.com",nil)
    reqest.Header.Set("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
    reqest.Header.Set("Accept-Charset","GBK,utf-8;q=0.7,*;q=0.3")
    reqest.Header.Set("Accept-Encoding","gzip,deflate,sdch")
    reqest.Header.Set("Accept-Language","zh-CN,zh;q=0.8")
    reqest.Header.Set("Cache-Control","max-age=0")
    reqest.Header.Set("Connection","keep-alive")
    response,_ := client.Do(reqest)
    if response.StatusCode == 200 {
        body,_ := ioutil.ReadAll(response.Body)
        bodystr := string(body);
        fmt.Println(bodystr)
    }
}

如何创建web服务端?

http包封装地非常bt,只需要两行!!:

复制代码 代码如下:
package main
import (
    "net/http"
)
func SayHello(w http.ResponseWriter,req *http.Request) {
    w.Write([]byte("Hello"))
}
func main() {
    http.HandleFunc("/hello",SayHello)
    http.ListenAndServe(":8001",nil)

}


进行端口的监听:http.ListenAndServe(":8001",nil)

注册路径处理函数:http.HandleFunc("/hello",SayHello)

处理函数:func SayHello(w http.ResponseWriter,req *http.Request)

golang服务器的效率怎样呢?

看看这个帖子:

http://groups.google.com/group/golang-nuts/browse_thread/thread/cde2cc6278cefc90

node.js is 45% faster than golang(确实伤心)

golang服务端的效率确实没有node.js高,几乎是它的一半。但话说回来,如果一些并发量不是很大的site,还是可以使用golang做服务器的。

希望本文所述对大家Go语言程序设计有所帮助。

(编辑:李大同)

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

    推荐文章
      热点阅读