Servidores Web, Error 404

¿Qué es el error 404?

El comportamiento predeterminado del servidor web, es redireccionar a “/” cuando no existe una ruta definida. Es decir que si accedemos una ruta no definida (404) en el ejemplo anterior por ejemplo http://localhost:8000/pest, sería el mismo que accesar http://localhost:8000/.

$ curl -is http://localhost:8000/prueba

Obtendríamos…

HTTP/1.1 200 OK
Content-Type: text/html
Date: Sat, 20 Apr 2019 00:04:13 GMT
Content-Length: 10

Hola Mundo

Para indicar al router que tenemos que regresar una respuesta 404 (No Encontrado), tenemos que agregar un condicional a la ruta del home para verificar que en realidad sea esta la que se esta invocando, de otra forma se mostrara un error 404.

Ejemplo del uso de una respuesta 404

package main

import "net/http"

func Home(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/" {
        http.NotFound(w, r)
        return
    }
    w.Write([]byte("Hola Mundo"))
}

func main() {
    http.HandleFunc("/", Home)
    http.ListenAndServe(":8000", nil)
}

Ahora comprobamos que al accesar la ruta Home el Path sea realmente /, de otra forma disparamos el not found como respuesta.

if r.URL.Path != "/" {
    http.NotFound(w, r)
    return
}

Al hacer la petición de Curl, ahora obtenemos el error apropiado.

$ curl -is http://localhost:8000/prueba
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Sat, 20 Apr 2019 00:41:49 GMT
Content-Length: 19

VPN

  • Ir a la oferta de NordVPN

Moda

Accesorios