localhost(127.0.0.1)はdjangoでサーバーを立ち上げた時などによく使われるけど、何か良くわからない。という方も多いのではないでしょうか。
そこで今回は、localhostについて分かりやすく説明していきます。
localhostについて動画で解説をしています。合わせて参考にして頂ければ幸いです。
localhostとは、自分のパソコンのことです
結論からお伝えすると、localhostというのは自分のパソコンのことです。
では、自分のパソコンを示すというのは一体どういうことなのでそうか。
これから詳しくみていきましょう。
全てのウェブサイトはIPアドレスを持っている
順番に理解を深めていきましょう。
まず理解しておきたい点として、すべてのウェブサイトはIPアドレスを持っている。ということがあげられます。これに例外はありません。
googleのホームページにもIPアドレスがありますし、日本国政府のホームページにもIPアドレスがあります。
IPアドレスとドメインは一対一の関係にある
ただ、ウェブサイトはhttps://www.google.comのように文字列で表示されていますよね。
上記の文字列の中で、google.comという部分をドメインと呼び、このドメインはIPアドレスと一対一の関係にあります。
ちなみに、googleの日本サイトであるgoogle.co.jpのIPアドレスは216.58.197.3です。
つまり、ブラウザで216.58.197.3と入力すると、google.co.jpがブラウザに表示されます。
ですので、普段は文字列であるドメインに見慣れているとおもいますが、IPアドレスを使っても問題がないということは頭に入れておきましょう。
IPには、グローバルIPとプライベートIPがある
また、IPアドレスにはグローバルIPアドレスとプライベートIPアドレスがあるということを頭に入れておきましょう。
ブラウザ経由で見れるウェブサイトのIPアドレスはすべてグローバルIPです。それに対して、ブラウザにIPを入力しても何も表示されないIPがプライベースIPです(厳密な表現ではありませんので注意してください)。
言い換えると、ネットワークに接続しているIPアドレスがグローバルIPアドレス、ネットワークに接続していないIPアドレスがプライベースIPアドレスです。
そして、localhost(127.0.0.1)はプライベートIPアドレスに属します。
プライベートIPアドレスは重複しても問題がありませんので、どのパソコンを使っていても、自分のパソコンはlocalhost(127.0.0.1)でアクセスすることが可能です。
localhostにアクセスするということは?
少しずつ理解を深めていきましょう。
次に、ブラウザからlocalhostにアクセスすることがどういったことなのか、とうい点についてみていきましょう。
結論からお伝えすると、localhostにアクセスするということは、自分のパソコンにインストールされたブラウザから、自分のパソコンにインストールされたウェブサーバーにアクセスしている。ということです。
図でイメージを膨らませていきましょう。
このように、自分のパソコンを示すIPアドレスがlocalhostです。
そして、自分のパソコンにはいろいろな機能が備わっています。
以下の図を見てください。
パソコンにウェブサーバーを構築するためのソフトがインストールされていれば、ウェブサーバーとして機能し、データベースを作るためのソフトがインストールされていれば、データベースサーバーとして機能します。
つまり、localhostと一言で言っても、多くの機能があるのです。
そして、ブラウザにurl(IPアドレス)を入力して必要な情報を取ってくるためには、url(IPアドレス)がウェブサーバーとしての機能を持っていなければいけません。
つまり、localhostにアクセスするということは、ブラウザから、ウェブサーバーとしての機能を持っているウェブサーバーにアクセスをするということなのです。
VPSでlocalhostにアクセスしてもダメな理由
ここで、さらに理解を深めるために、よくありがちなミスについて一つご紹介しようと思います。
それは、Djangoのインストールを、手元のパソコンで行うのではなく、AWSやDegitalocean、VultrなどのVPS、すなわち手元のパソコンではなく、外部のパソコンを使って開発を進めている場合です。
このような環境でサーバーを立ち上げてlocalhostにアクセスをしても、エラー場が出てしまいます。
なぜなら、ブラウザがインストールされているパソコンとVPSは別のパソコンだからです。
この原則を理解していると、今後開発を進める上でも混乱することがないのではないかと思います。
localhostについて動画で解説をしています。合わせて参考にして頂ければ幸いです。
localhostのまとめ
(1) localhostは、自分のパソコンのこと
(2) IPアドレスは、グローバルとプライベートがある。localhostはプライベートIPアドレス。
(3) localhostにアクセスするということは、自分のパソコンのウェブサーバーにアクセスするということ
(4) VPSにDjangoをインストールしている場合、手元のパソコンとは違うので、localhostでアクセスすることはできない。