package main import ( "bytes" "compress/gzip" "log" "net/http" ) func main() { data := []byte("AAAAAAAAAA") var gzipData bytes.Buffer gzipEncoder := gzip.NewWriter(&gzipData) if _, err := gzipEncoder.Write(data); err != nil { log.Fatal(err) } gzipEncoder.Close() http.HandleFunc("/compressed", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Encoding", "gzip") w.Header().Set("Content-Type", "text/plain") w.Write(gzipData.Bytes()) }) http.HandleFunc("/data", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/plain") w.Write(data) }) if err := http.ListenAndServe(":9000", nil); err != nil { log.Fatal(err) } }