システム開発を行う上で、自分の開発PC(ローカル)にサーバーを立ててアプリケーションの動作確認を行うことが多々あります。

大抵の場合は『https://localhost/~』という指定でアクセスして動作確認を行います。

しかし、運用環境で動作確認を行おうとすると『https://(IPアドレス)/~』または『https://(コンピュータ名)/~』といった指定をしてアクセスする必要があります。

『localhost』での指定と『IPアドレス』での指定にはどのような違いがあるのでしょうか。

localhostでアクセスする場合

『localhost』は『12.0.0.1』と併せて『ループバックアドレス』と呼ばれる特別なIPアドレスです。

『ループバック』と呼ばれる名前から少し読み取ることが出来ますが、このIPアドレスを指定するとコンピュータは「あ、自分を指しているんだな」と認識し、リクエスト情報を自分の中で処理します。

つまり、『https://localhost/~』や『https://127.0.0.1/~』というリクエストはコンピュータの中だけで処理されます。

「LANケーブルを経由しない」というと具体的なイメージが付きやすいでしょうか。

IPアドレスでアクセスする場合

Windowsの場合はコマンドプロンプトで『ipconfig』と入力すると表示されるアドレスを『IPアドレス』とします。

『IPアドレス』によるリクエストを行った場合、コンピュータは「このアドレスどこのコンピュータだろう?」と自分の『IPアドレス』であっても認識することが出来ません。

なのでLANケーブルなりネットワークを経由してルーターに「このIPアドレスはどのコンピュータですか?」と問い合わせを行います。それが自分の『IPアドレス』であったとしても。

つまり『localhost』では一つのコンピュータの中だけで完結できたリクエストが、『IPアドレス』ではルーターを介する必要が出てきます。

「LANケーブルを経由する」というイメージですね。

まとめ

まとめ
  • localhost/127.0.0.1(ループバックアドレス):ルーター(LANケーブル)を介さない。
  • (自PCの)IPアドレス:ルーター(LANケーブル)を介する。

サービスからサービスに対してリクエストをするような場合は『IPアドレス』ではなく『localhost』指定にしてしまうのも一つの方法ですね。

以上です。

スポンサーリンク