全栈开发知识库

搭建一个Web服务器(一)

Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个可以运行的Web服务。同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。

有关网络请求相关知识请查看之前的文章网络请求相关内容总结

下面就用go实现一个简单的web服务器:

import (
    "net/http"
    "log"
    "fmt"
)

func main() {
    http.HandleFunc("/", sayHello)
    err := http.ListenAndServe(":9999", nil)
    if err != nil {
        log.Fatalf("ListenAndServe: ", err)
    }
}
func sayHello(writer http.ResponseWriter, request *http.Request) {
    // 解析参数,默认是不会解析的
    request.ParseForm()

    // 下面是打印一些请求信息
    fmt.Println(request.Form)
    fmt.Println("path is :" + request.URL.Path)
    fmt.Println("scheme is :" + request.URL.Scheme)

    for k, v := range request.Form {
        fmt.Println("key : ", k)
        fmt.Println("val :", v)
    }
    // 向浏览器客户端输入信息
    fmt.Fprintf(writer, "Hello World")
}

这个时候其实已经在9999端口监听http链接请求了。

在浏览器输入http://localhost:9999 或者加参数:http://localhost:9999/?username"haha"&sex="male"

在服务器端输出的信息如下:

map[username:["haha"] sex:["male"]]
path is :/
scheme is :
[]
key :  username
val : ["haha"]
key :  sex
val : ["male"]
map[]
path is :/favicon.ico
scheme is :
[]

惊喜不惊喜,意外不意外,它不用和java是的需要tomcat,直接使用net/http的包调用几个方法就可以了,因为它可以直接就监听tcp端口了。


  • 邮箱 :charon.chui@gmail.com
  • Good Luck!