Package httputil provides HTTP utility functions.
GetHostname returns the hostname from request Host field. It returns empty string, if Host field contains invalid value (e.g. "localhost:::" with too many colons).
GracefulClose drains http.Response.Body until it hits EOF and closes it. This prevents TCP/TLS connections from closing, therefore available for reuse. Borrowed from golang/net/context/ctxhttp/cancelreq.go.