Go HTTP server
Go makes it very easy to create HTTP servers using the standard library net/http
package.
First we create a new ServeMux
object, also known as a request multiplexer, muxer or router. Using the HandleFunc()
method we then register a function to handle requests for the "/hello"
pattern. Finally, we start a local server on port 3000 and pass the mux
object as its handler.
package main
import "net/http"
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World!"))
})
http.ListenAndServe("localhost:3000", mux)
}
ServeMux
implements the Handler
interface and is the main entry point for requests accepted by the server.
type Handler interface {
ServeHTTP(ResponseWriter, *Request)
}
HandleFunc()
is just a convenient method to turn a function into a Handler
by wrapping it with a ServeHTTP()
method. It then registers it to handle the "/hello"
pattern, so our muxer can route requests to the appropriate handlers.