In computer networking, localhost means this computer. It is a hostname that the computer's
software and users may employ to access the computer's own network services via its loopback
network interface. Using the loopback interface bypasses local network interface hardware.
The local loopback mechanism is useful for testing software during development independent
of any networking configurations. If a computer has been configured to provide a website,
directing its web browser to http:localhost may display its home page.
The name is also a reserved top-level domain name, set aside to avoid confusion with the
narrower definition as a hostname. The IETF standards restrict domain name registrars
to assign the name in their normal registration procedures, such as for second-level domains,
e.g., localhost.com. On most computer systems, localhost resolves
to the address 127.0.0.1, which is the most-commonly used IPv4 loopback address, and to the IPv6
loopback address ::1.
Name resolution IPv4 network standards reserve the entire
127.0.0.0/8 address block for loopback purposes. That means any packet sent to one of those
16,777,214 addresses will be looped back. The resolution of the name localhost into
one or more IP addresses is configured by the following lines in the operating system's
hosts file:
127.0.0.1 localhost ::1 localhost
Localhost may also be mapped to other IPv4 loopback addresses, and additional synonyms
may be assigned to any loopback address. The processing of any packets sent to a loopback
address is implemented in the link layer of the TCP/IP stack. Such packets are never delivered
to any network interface controller or device driver, which permits testing of software
in the absence of any hardware network interfaces. Like any other packets traversing the TCP/IP
stack, looped-back packets convey the IP address and port number they were addressed to. Thus,
the services that ultimately receive them can respond according to the specified loopback
destination. For example, an HTTP service could route packets addressed to 127.0.0.99:80
and 127.0.0.100:80 to different Web servers, or to a single server that would return different
web pages. To simplify such testing, the hosts file can be modified to provide appropriate
aliases for each such address. IETF standards
The name localhost is reserved for loopback purposes by RFC 6761, which achieved the Proposed
Standard maturity level in February, 2013. The standard sets forth a number of special
considerations governing the use of the name in the Domain Name System:
An IPv4 or IPv6 address query for the name localhost must always resolve to the respective
loopback address, which is specified in a separate standard.
Applications may resolve the name to a loopback address themselves, or pass it to the local
name resolver mechanisms. When a name resolver receives an address query
for localhost, it should return the appropriate loopback addresses, and negative responses
for any other requested record types. Queries for localhost should not be sent to caching
name servers. To avoid burdening the Domain Name System
root servers with traffic, caching name servers should never request name server records for
localhost, or forward resolution to authoritative name servers.
DNS registrars are precluded from delegating domain names that include localhost, e.g.,
localhost.com, in order to avoid the confusion that would result if a DNS lookup appended
a specified search domain. When authoritative name servers receive localhost
queries, they should appropriately resolve them.
The IPv4 loopback addresses are reserved within the IPv4 namespace by the IETF Special Use
IPv4 Addresses standard. The reservation can be traced back to the November, 1986 Assigned
Numbers standard, which was issued at a time when the first byte of the IP address was
a signed network number that was the only portion of the address assigned by the IETF.
Reserving its highest possible network number for loopback testing eventually resulted in
the excessive reservation of 16,777,214 loopback addresses.
In contrast, the IETF IP Version 6 Addressing Architecture standard reserves the single
IPv6 loopback address ::1 within the IPv6 namespace. The standard precludes the assignment
of that address to any physical interface, as well as its use as the source or destination
address in any packet sent to remote hosts. Any such packet that is erroneously transmitted
is not supposed to be routed, and should be dropped by all hosts that receive it.
Special cases The releases of the MySQL database differentiate
between the use of the hostname localhost and the use of the addresses 127.0.0.1 and ::1.
When using localhost as the destination in a client connector interface of an application,
the MySQL application programming interface connects to the database using a Unix domain
socket, while a TCP connection via the loopback address requires the direct use of the explicit
address. One notable exception to the use of the 127.0.0.0/8
network addresses is their use in Multiprotocol Label Switching traceroute error detection,
in which their property of not being routable provides a convenient means to avoid delivery
of faulty packets to end users. Martian packets
Any IP datagram with a source or destination address set to a loopback address must not
appear outside of a computing system, or be routed by any routing device. Packets received
on an interface with a loopback destination address must be dropped. Such packets are
sometimes referred to as Martian packets As with other bogus packets, they may be malicious
and any problems they might cause can be avoided by applying bogon filtering.
References