localhostと0.0.0.0の違いについて
今日 webpack-dev-server configuration host について調べていたら、マニュアルのこの行に行き当たりました。
<ブロッククオート
ホストを使用することを指定します、デフォルトは
localhost
とするか、外部からアクセスできるようにしたい場合は、以下のようにします。
host: "0.0.0.0"
しかし、ローカルでもアクセスできるように設定できたのは
localhost
どうにもこうにも、この2つの違いを割り切りたいので、以下にまとめてみました。
理由
各ホストは、複数のNICや複数のIPアドレスなど、複数のIPアドレスを持つ場合があります。
127.0.0.1
は、ローカル
ループバックアドレス
は、自分自身へのアクセスに特化しており、(スタック全体を経由することなく)高速に、その
は、ホスト外のネットワークに現れることはありません。
ので、開発環境での使用にのみ適しています。
localhost
ただ
127.0.0.1
のエイリアスです。
0.0.0.0
をリッスンするようにサーバに指示する場合、いくつかの異なる意味があります。
0.0.0.0
というのは
は、利用可能なすべてのネットワークインターフェイスをリッスンします。
サーバー・プロセスの観点からは、IPアドレスが
127.0.0.1
ループバックアダプタはマシン上の他のネットワークアダプタと同じように見えるため、ループバックアダプタをリッスンするのに
0.0.0.0
は、そのインターフェイスでの接続も受け付けます。
したがって、実際には、一般に、サーバー側のポートのバインドを
0.0.0.0
というように、ホストの複数のIPアドレスから私のサービスにアクセスできるようにします。
例えば、外部アドレスAと内部アドレスBのサーバーがあり、0.0.0.0を指定したポートにバインドすると、内部アドレスと外部アドレスのどちらからでもアプリケーションにアクセスできるようになりますね。
関連
-
webpack パッケージの css エラー(解決済み)。UnhandledPromiseRejectionWarning。TypeError: this.getResolve は関数ではありません。
-
[解決済み】「import」「export」がトップレベルにしか表示されない場合がある。
-
[解決済み] モジュール 'webpack/bin/config-yargs' が見当たりません。
-
[解決済み] モジュールのビルドに失敗しました(./node_modules/babel-loader/lib/index.js から)。TypeError: nullのプロパティ 'bindings' を読み取ることができません。
-
[解決済み] Vue.jsのready()メソッドがvueコンポーネントで呼び出されない
-
[解決済み] bazel と webpack の統合
-
未定義のプロパティ 'properties' を読み取ることができません。
-
Critical dependencyの解決方法:依存関係のリクエストは式?
-
mac install webpack -bash: webpack: コマンドが見つかりませんでした。
-
Webpackの "Invalid Host Header "を解決する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン