この記事では『localhost』について、以下の内容を図やサンプルコードを用いてわかりやすく解説します。
localhost
とはlocalhost
とホストファイルの関係localhost
と127.0.0.1
の違いlocalhost
でWebサーバーを立ち上げるサンプルコード
localhostとは
localhost(ローカルホスト)は、現在使用しているコンピュータ自身を指す特別な名前(ホスト名)です。
インターネットを利用するとき、私たちは世界中のサーバーに接続しますが、localhost
を使うと、外部ネットワークを通らずに自分のコンピュータ内で通信ができます。たとえば、WebアプリケーションやWebサイトを開発しているとき、localhostを利用することでインターネットに公開する前に、自分のPC内でテストを行えます。
技術的には、localhost
はIPアドレスの127.0.0.1
に対応しています。このIPアドレスは「ループバックアドレス」と呼ばれ、通信が必ず自分自身に戻るように設定されています。
例えば、ブラウザで「http://localhost
」と入力すると、現在使用しているコンピュータ内で動作しているWebサーバーにアクセスします。外部ネットワークに接続する必要がないため、安全に接続できます。
localhostとホストファイルの関係
localhost
は、コンピュータ内のホストファイルという設定ファイルで127.0.0.1
に関連付けられています。
ホストファイルの場所
- Windows:
C:\Windows\System32\drivers\etc\hosts
- Mac/Linux:
/etc/hosts
ホストファイルには、次のような行が含まれています。
127.0.0.1 localhost
この設定により、localhost
はIPアドレス127.0.0.1
に名前解決(ホスト名とIPアドレスの関連付け)されます。このように「ホストファイル」には、IPアドレスとホスト名の対応関係が記載されています。
例えば、以下のようにホストファイルを変更すると、ブラウザで「http://localhost
」と入力しても、名前解決できないので、現在使用しているコンピュータ内で動作しているWebサーバーにアクセスできなくなります。逆にブラウザで「http://localhosthoge
」と入力すると、現在使用しているコンピュータ内で動作しているWebサーバーにアクセスできるようになります。
127.0.0.1 localhosthoge
localhostと127.0.0.1の違い
localhost
と127.0.0.1
はほぼ同じものを指しますが、以下のような違いがあります。
127.0.0.1
はIPアドレスそのものです。localhost
はホストファイルで名前解決されたホスト名です。つまり、localhost
は127.0.0.1
を人間が理解しやすい名前に置き換えたものです。
ただし、環境によってはlocalhost
が別のIPアドレス(例:IPv6アドレスの::1
)に割り当てられることもあります。環境によって動作が異なることがあるので注意してください。
localhostでWebサーバーを立ち上げるサンプルコード
Pythonを使ってローカル環境でWebサーバーを立ち上げて、簡単に動作を確認する例を紹介します。
以下のコードをserver.py
という名前で保存してください。
from http.server import SimpleHTTPRequestHandler, HTTPServer
# サーバーの設定
host = "localhost"
port = 8000
# サーバーの起動
if __name__ == "__main__":
with HTTPServer((host, port), SimpleHTTPRequestHandler) as server:
print(f"Server running on http://{host}:{port}")
server.serve_forever()
Pythonがインストールされている環境で、コマンドプロンプトやターミナルを開いて、server.py
を保存したディレクトリに移動します。
その後、以下のコマンドを実行します。
python server.py
そして、ブラウザでhttp://localhost:8000
にアクセスします。すると、現在のディレクトリのファイル一覧がWebサーバーを通じて表示されます。例えば、index.html
をディレクトリに置くと、そのHTMLファイルがWebページとして表示されます。
本記事のまとめ
この記事では『localhost』について、以下の内容を説明しました。
localhost
とはlocalhost
とホストファイルの関係localhost
と127.0.0.1
の違いlocalhost
でWebサーバーを立ち上げるサンプルコード
お読み頂きありがとうございました。