Understanding the request
The http.Request
object gives us access to every piece of information we might need about the underlying HTTP request; therefore, it is worth glancing through the net/http
documentation to really get a feel for its power. Examples include, but are not limited to, the following:
The URL, path, and query string
The HTTP method
Cookies
Files
Form values
The referrer and user agent of requester
Basic authentication details
The request body
The header information
There are a few things it doesn't address, which we need to either solve ourselves or look to an external package to help us with. URL path parsing is one such example – while we can access a path (such as /people/1/books/2
) as a string via the http.Request
type's URL.Path
field, there is no easy way to pull out the data encoded in the path, such as the people ID of 1
or the book ID of  2
.
Note
A few projects do a good job of addressing this problem, such as Goweb or Gorillz's mux
package. They let you map path patterns...