Respostas:
Use http.ResponseWriter.WriteHeader. Da documentação:
WriteHeader envia um cabeçalho de resposta HTTP com o código de status. Se WriteHeader não for chamado explicitamente, a primeira chamada para Write acionará um WriteHeader implícito (http.StatusOK). Assim, as chamadas explícitas para WriteHeader são usadas principalmente para enviar códigos de erro.
Exemplo:
func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("500 - Something bad happened!"))
}
Além disso, WriteHeader(int)você pode usar o método auxiliar http.Error , por exemplo:
func yourFuncHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "my own error message", http.StatusForbidden)
// or using the default message error
http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
}
Os métodos http.Error () e http.StatusText () são seus amigos
w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)
lista completa aqui
http: superfluous response.WriteHeader call