Go: 11-1 http标准库

Server
package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, "Hello, world!")
}

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

import ( “fmt” “net/http” “net/http/httputil” )

func main() { request, err := http.NewRequest(http.MethodGet, “http://www.imooc.com", nil) if err != nil { panic(err) } request.Header.Add(“User-Agent”, “Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1”) client := http.Client{ CheckRedirect: func(req *http.Request, via []*http.Request) error { fmt.Println(“Redirect:“, req) return nil }, } resp, err := client.Do(request)

if err != nil { panic(err) } defer resp.Body.Close() s, err := httputil.DumpResponse(resp, true) if err != nil { panic(err) } fmt.Printf(“%s\n”, s) } ```

http服务器的性能分析