0.0.0.0:8000でrunserverするのはどういうこと?【詳しく解説】

runserverをするときに、0.0.0.0:8000という指定がされていたけど、これが何か分からない。という方も多いのではないかと思います。

そこで今回は、0.0.0.0:8000について分かりやすく説明をしていきます。
0.0.0.0:8000は、どのIPアドレスからのアクセスも受け付けます、という意味です

上で書いた通り、0.0.0.0:8000は、どのIPアドレスからのアクセスも受け付けますよ、という意味です。

ただ、どのIPアドレスからのアクセスも受ける。という部分が分からない、という方も多いかもしれません。

ですので、すこし掘り下げてみていきましょう。
djangoでは、サーバーは2つ準備する必要がある

ここが最大のポイントです。djangoでは、サーバーを2つ準備しなければいけません。

その2つとは、ウェブサーバーとアプリケーションサーバーです。

djangoの開発環境で「runserver」コマンドを打つと、実は2つのサーバーが立ち上がっているのです。

アクセスの流れは、ウェブサーバー→アプリケーションサーバー

そして、ブラウザからのアクセスの流れは、ウェブサーバーからアプリケーションサーバーという形になります。

以下が、djangoでのアクセスの流れです。
0.0.0.0:8000は、アプリケーションサーバーが受けるIPを示している

少しずつ具体的な内容に入っていきましょう。

runserverをする時に指定した0.0.0.0:8000、実はこれはアプリケーションサーバーがアクセスを受けるIPを指定しているのです。

この点を意識した上で、良く起こりがちなエラーについてみていきましょう。
ウェブサーバーにどのIPでもアクセスできるわけではない

これが2つ目のポイントです。0.0.0.0:8000としているので、どのIPを入力してもアクセスできると考える方も多いと思います。

(私も最初はそのように考えていました。)

しかし、ウェブサーバーはそれぞれ一つのIPアドレスを有していることが一般的です。

ですので、runserverで0.0.0.0:8000と指定したとしても、ブラウザからはウェブサーバーのIPを指定してあげなければいけないのです。

このポイントが分かると、0.0.0.0:8000でサーバーを立ち上げたにも関わらず、エラーが出てしまうということを避けることができるでしょう。

:8000はポートの番号

ちなみに、0.0.0.0の後についている8000はポートの番号です。

0.0.0.0:8000のまとめ



(1) djangoでは、2つのサーバーが使われている。

(2) 0.0.0.0:8000は、アプリケーションサーバーが、8000番ポートのどのIPアドレスからもアクセスを受ける。ということを指定している。

(3) ブラウザからウェブサーバーにアクセスするためには、ウェブサーバーのIPを入力する必要がある。

~Django無料講義~のご案内

Code for Djangoが、4時間超の無料Django講義をはじめました
 
・本を出版したCode for Djangoの
 製作者が作ったサイトです。
 
・Code for Djangoの内容も、
 動画で詳しく解説しています。
 
・動画は順次ふやしていきますので、
 ただで学び続けることが可能です。
 
・Djangoの効率的なスキルアップに、
 是非お役立て下さい。

                                                                Django講義はこちら
Created with