Go是一门相对年轻的语言,并且它非常适合用来编写那些需要快速运行的服务器端程序。Go拥有非常多的标准库,许多公司已经开始使用Go了。Go只需要简单的几行就可以建立一个可以运行的web应用。

建立文件server.go

package main

import (
"fmt"
"net/http"
)


func handler(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "hello world!")
}

func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8000", nil)
}

运行go run server.go

打开浏览器访问http://localhost:8000/,页面显示hello world!

http.HandleFunc("/", handler)

访问根路径执行handler方法,这个方法带有2个参数,一个是http.ResponseWriter接口,一个是指向http.Request的指针。Request是获取访问地址传递的参数,ResponseWriter用于响应给客户端信息。

http.ListenAndServe(":8000", nil)

启动一个8000端口的web服务,这样一个最简单的web应用就建立好了。

那如果还有别的访问地址呢?

http.HandleFunc("/", handler)
http.HandleFunc("/api", api)
http.HandleFunc("/hand", hand)
http.ListenAndServe(":8000", nil)

按照handler函数的样子,再建立api和hand函数

func api(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "hello api!")
}
func hand(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "hello hand!")
}

如果想对服务设置其他参数,需要先定义http.Server结构体

server := http.Server{
Addr: "127.0.0.1:8080",
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
server.ListenAndServe()