title: What's the difference between ResponseWriter.Write and io.WriteString?
body: <p>I've seen three ways of writing content to HTTP response:</p>
  
  <pre><code>func Handler(w http.ResponseWriter, req *http.Request) {
      io.WriteString(w, "blabla.\n")
  }
  </code></pre>
  
  <p>And:</p>
  
  <pre><code>func Handler(w http.ResponseWriter, r *http.Request) {
      w.Write([]byte("blabla\n"))
  }
  </code></pre>
  
  <p>Also there's:</p>
  
  <pre><code>fmt.Fprintf(w, "blabla")
  </code></pre>
  
  <p>What's the difference between them? Which one is preferred to use?</p>