code: func CloneRequest(req *http.Request) *http.Request {
  	r := new(http.Request)
  
  	// shallow clone
  	*r = *req
  
  	// deep copy headers
  	r.Header = CloneHeader(req.Header)
  
  	return r
  }
docs: // CloneRequest creates a shallow copy of the request along with a deep copy of the Headers.