title: In Go HTTP handlers, why is the ResponseWriter a value but the Request a pointer?
body: <p>I'm learning Go by writing an app for GAE, and this is signature of a handler function:</p>
  
  <pre><code>func handle(w http.ResponseWriter, r *http.Request) {}
  </code></pre>
  
  <p>I'm pointer newbie here, so why is the <code>Request</code> object a pointer, but the <code>ResponseWriter</code> not? Is there any need to have it this way or is this just to make some kind of advanced pointer based code possible?</p>