回答:
まあ、最も可能性の高い違いは、どこかで実際の検索を行う必要があることですlocalhost
。
を使用する127.0.0.1
場合、(インテリジェントな)ソフトウェアはそれを直接IPアドレスに変換して使用します。の一部の実装でgethostbyname
は、ドット形式(およびおそらく同等のIPv6形式)が検出され、ルックアップはまったく行われません。
それ以外の場合は、名前を解決する必要があります。また、hosts
ファイルが実際にその解決に(最初に、またはまったく)使用される保証はないためlocalhost
、完全に異なる IPアドレスになる可能性があります。
つまり、一部のシステムでは、ローカルhosts
ファイルがバイパスされる可能性があります。このhost.conf
ファイルは、Linux(および他の多くのUnices)でこれを制御します。
/etc/nsswitch.conf
hosts
nssが実行されている場合、ホスト検索に最初にDNSを使用するかどうかを選択します。
最近のコンピューターシステムでは、ホスト名としてのlocalhostは、127.0.0.0 / 8(ループバック)ネットブロックのIPv4アドレス(通常は127.0.0.1、またはIPv6の:: 1)に変換されます。
唯一の違いは、localhost
解決先のシステムのDNSを検索することです。このルックアップは本当に、とても速いです。たとえばstackoverflow.com
、アドレスバーに入力した(または、ここを指すブックマークレットを使用した)場合は、いずれにせよ、あなたはホスト名を通してここに来ました。localhost
同様の機能を提供します。
一部のアプリケーションは「localhost」を特別に扱います。mysqlクライアントは、127.0.0.1上のサーバーへの接続にtcpを使用する代わりに、localhostをローカルUNIXドメインソケットへの接続要求として扱います。これはより高速で、別の認証ゾーンにある可能性があります。
私はlocalhostを127.0.0.1とは異なる方法で処理する他のアプリを知りませんが、おそらくいくつかあります。
まあ、IPによる方が速いです。
基本的に、サーバー名で呼び出すと、元のIPに変換されます。
ただし、ドメイン名が作成されたため、IPを記憶することは困難です。
個人的にはhttp://localhost
、http://127.0.0.1
またはの代わりに使用しますhttp://username
。
主な違いは、ここに記載されているように、Unix Domain Socket経由で接続できることです:localhostと127.0.0.1
localhost
プロトコル独立しており、IPv4とIPv6の両方が動作します。