Running an HTTP server
The standard Go library offers an HTTP server with sensible defaults that you can use out of the box, similar to the way HTTP clients are implemented. If you need to configure transport specifics, timeouts, and so on, then you can create a new http.Server
and work with it. This section describes both approaches.
How to do it...
- Create an
http.Handler
to handle HTTP requests:func myHandler(w http.ResponseWriter, req *http.Request) { if req.Method == http.MethodGet { // Handle an HTTP GET request } ... }
- Call
http.ListenAndServe
:err:=http.ListenAndServe(":8080",http.HandlerFunc(myHandler)) log.Fatal(err)
- The
ListenAndServe
function either returns immediately due to an error setting up a network listener (for example, if the address is already in use) or successfully starts listening. When the server is asynchronously closed (by callingserver.Close()
orserver.Shutdown()
), it...