概要
Python 3では、ローカルで簡易HTTPサーバーを起動するために、http.serverモジュールを使用します。これはPython 2のSimpleHTTPServerの代替です。開発環境でのテストや、ローカルファイルの簡易サーバーとして便利に利用できます。本記事では、Python 3でのコマンドとオプションの使い方について詳しく解説します。
Python 3での簡易HTTPサーバーの起動方法
Python 3では、次のコマンドで簡易HTTPサーバーを起動できます。
python3 -m http.server
デフォルトでは、ポート8000でサーバーが起動します。このサーバーは、現在のディレクトリのファイルをローカルネットワークで提供します。
別のポートでサーバーを起動する
別のポートでサーバーを起動したい場合は、次のようにポート番号を指定します。
python3 -m http.server 8080
これにより、ポート8080でサーバーが起動します。
Python 2からの変更点
Python 2では、SimpleHTTPServerモジュールを使用して同様のサーバーを起動していましたが、Python 3ではhttp.serverモジュールに統合されました。そのため、Python 2のコードをPython 3に移行する際には、このモジュールの変更に注意が必要です。
# Python 2のコマンド
python -m SimpleHTTPServer
# Python 3のコマンド
python3 -m http.server
その他のオプション
http.serverには他にも便利なオプションがあります。たとえば、--bindオプションを使って特定のアドレスにバインドすることができます。
python3 -m http.server 8000 --bind 127.0.0.1
これにより、ローカルホスト(127.0.0.1)のみからのアクセスを許可するサーバーを起動できます。また、Python 3.7以降では、--directoryオプションを使って、特定のディレクトリを指定することも可能です。
python3 -m http.server --directory /path/to/your/directory
注意点
http.serverは基本的なセキュリティチェックしか実装していないため、本番環境での使用は推奨されていません。開発やローカルでのテスト用として利用するのが適切です。
結論
Python 3では、http.serverモジュールを使って簡単にローカルHTTPサーバーを起動することができます。開発中に素早くファイルを提供したり、テスト目的で使うのに非常に便利です。Python 2のSimpleHTTPServerからの移行もスムーズに行えます。