Нашел в интернете пример как делать http сервер
https://astaxie.gitbooks.io/build-web-application-with-golang/en/03.2.html
package main
import (
    "fmt"
    "net/http"
    "strings"
    "log"
)
func sayhelloName(w http.ResponseWriter, r *http.Request) {
    r.ParseForm()  // parse arguments, you have to call this by yourself
    fmt.Println(r.Form)  // print form information in server side
    fmt.Println("path", r.URL.Path)
    fmt.Println("scheme", r.URL.Scheme)
    fmt.Println(r.Form["url_long"])
    for k, v := range r.Form {
        fmt.Println("key:", k)
        fmt.Println("val:", strings.Join(v, ""))
    }
    fmt.Fprintf(w, "Hello astaxie!") // send data to client side
}
func main() {
    http.HandleFunc("/", sayhelloName) // set router
    err := http.ListenAndServe(":9090", nil) // set listen port
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}
Как запустить разные серверы на разных портах из одной программы?
Почему http.HandleFunc в единственном экземляре?
Можно передать sayhelloName сюда (":9090", nil) вместо nil, но как тогда назначить хендлер на '/' или на '/test/'?
