En computación nos referimos a localhost a un equipo, de cualquier tipo, ubicado físicamente en el mismo lugar donde nos encontramos. Al menos en la misma red local a la que estamos conectados. Y por lo general, la dirección IP de 127.0.0.1 hace referencia a dicho equipo.
¿Pero qué es un host? Es un término técnico con el que nos referimos a cualquier dispositivo que esté conectado a una red. Puede ser un ordenador, un servidor, una cámara de vigilancia, una consola de videojuegos o la TV inteligente.
Ese es el motivo del término compuesto de localhost para referirnos a un equipo que se encuentra de forma física en la misma red local en la que estamos. Además, 127.0.0.1 es una dirección IP de loopback, con el cual nos referimos a un enrutamiento de flujo propio, con el cual el host accede a sus propios servicios independientemente de la configuración de red en la que se encuentre.
El uso del loopback puede ser útil pero sobre todo sumamente práctico para acceder a servicios de red en la propia máquina sin consultar la configuración de red en la que nos encontramos. El ejemplo más habitual es acceder a una página de un servidor web instalado en el equipo en donde estamos escribiendo simplemente 127.0.0.1 en el navegador.
Casi todos los estándares de redes IPv4 utilizan la dirección de loopback 127.0.0.1, por lo que reservan el bloque completo de dichas direcciones para tal propósito. En contraste, el estándar IPv6 usa la dirección 0:0:0:0:0:0:0:1 o símplemente ::1 como loopback, que desde un punto de vista semántico tiene mucho más sentido.
¿Por qué 127.0.0.1?
La razón parece no estar del todo documentada, pero gracias a un hilo en el foro de Superuser.com podríamos hacernos una idea más o menos clara.
127 es el último número en una red clase A, con una máscara de subred de 255.0.0.0. Y, 127.0.0.1 es la primera dirección asignable en dicha subred. Los valores 0, 127, y 255 son especiales en lenguajes de ensamblado de 8 bits. 127 en binario es 01111111, y 255 es 11111111. Si los números 0 y 255 están reservados, entonces la elección de 127 podría ser la obvia, o la más sencilla de recordar.
Un documento de 1986 sobre la asignación de los números de redes, nos ofrece un poco más de luz sobre la toma de decisiones con relación a 127.0.0.1 como asignación de la dirección IP de localhost:
La dirección cero debe interpretarse que significa "esto", como en "esta red". Por ejemplo, le dirección 0.0.0.37 podría ser interpretada como el host numero 37 en esta red.
La dirección de solo unos debe interpretarse que significa "todos", como en "todos los hosts". Por ejemplo, la dirección 12.9.255.255 podría ser interpretada como todos los hosts en la red 128.9.
A el número 127 en la red clase A se le ha asignado la función "loopback", esto significa, que un flujo de datos enviado por un protocolo de alto nivel a una red 127 debe ir de vuelta dentro del host.
En 1981, 0 y 127 eran las únicas redes clase A reservadas. El número 0 fue usada para apuntar al localhost, así que eso dejó a 127 para el loopback. Sin embargo, 127.0.0.1 pronto podría dejar de ser la forma de acceder a servicios de red local, ya que a medida que el protocolo IPv6 se vaya haciendo más popular y más usado en redes de todo el mundo, recurriremos a la dirección ::1.