回答:
まあ、最も可能性の高い違いは、どこかで実際の検索を行う必要があることですlocalhost。
を使用する127.0.0.1場合、(インテリジェントな)ソフトウェアはそれを直接IPアドレスに変換して使用します。の一部の実装でgethostbynameは、ドット形式(およびおそらく同等のIPv6形式)が検出され、ルックアップはまったく行われません。
それ以外の場合は、名前を解決する必要があります。また、hostsファイルが実際にその解決に(最初に、またはまったく)使用される保証はないためlocalhost、完全に異なる IPアドレスになる可能性があります。
つまり、一部のシステムでは、ローカルhostsファイルがバイパスされる可能性があります。このhost.confファイルは、Linux(および他の多くのUnices)でこれを制御します。
/etc/nsswitch.confhostsnssが実行されている場合、ホスト検索に最初に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の両方が動作します。