¿Qué son las cabeceras web?
Una operación común es el uso de cabeceras HTTP, esta es información enviada que le indica al navegador como debe interpretar los datos. En los ejemplos anteriores hemos utilizado las cabeceras predeterminadas, pero si quisiéramos por ejemplo enviar una respuesta en forma de un documento JSON, tendríamos que especificar dichas cabeceras.
w.Header().Set("Content-Type", "application/json; charset=utf-8")
En la línea anterior hemos indicado que el objeto http.ResponseWriter ha declarado una cabecera en donde se define el tipo de contenido Content-Type de tipo appllication/json y cuya codificación es UTF-8 charset=utf-8.
Ejemplo del uso de cabeceras web en Go
package main
import "net/http"
func Home(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" {
http.NotFound(w, r)
return
}
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write([]byte(`{"mensaje":"Hola Mundo"}`))
}
func main() {
http.HandleFunc("/", Home)
http.ListenAndServe(":8000", nil)
}
Ahora podemos realizar una petición nuevamente para comprobar que la respuesta es tipo json.
$ curl -is http://localhost:8000
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Sat, 20 Apr 2019 01:01:59 GMT
Content-Length: 24
{"mensaje":"Hola Mundo"}