Pythonで1行も書かずにWebServerを構築

この記事は約3分で読めます。
スポンサーリンク

やりたいこと

Pythonで1行もコードを書かずにWebServerを構築します。

理由は後述しますがLAN中など、セキュリティが保たれた場所でのみ使ってください。

スポンサーリンク

起動方法

Pythonを以下のページからダウンロードしインストールします。

Download Python
The official home of the Python Programming Language

コマンドプロンプトを起動して、サーバーのルートにするフォルダに移動して以下コマンドを実行します。

python -m http.server

以上で、httpサーバが起動しました。

ブラウザから”http://localhost:8000/”や”http://ipadress:8000”にアクセスすることで起動したサーバにアクセスできます。

スポンサーリンク

できることとできないこと

起動したWebサーバでできることとできないことをまとめます。

できること

ファイルのリストとダウンロード

サーバの起動コマンドを実行したフォルダにindex.html(もしくはindex.htm)がない場合、”http://localhost:8000/”にアクセスするとフォルダとファイルのリストが表示されます。

フォルダをクリックすることでfolderの移動、ファイルをクリックすることでダウンロード(ファイル種により内容の閲覧)ができます。

もちろんURLにパスを入力することで、直接ファイルやフォルダにアクセスすることができます。

HTMLの表示

ブラウザからHTMLファイルを選択するとHTMLとして表示します(サーバはHTMLを返しているだけですが)

またフォルダ表示時にindex.html(もしくはindex.htm)がある場合、index.html(もしくはindex.htm)が表示します。

PORTの指定

起動時のコマンドのhttp.serverの後にport番号を指定できます。

例:portを8001に指定

python -m http.server 8001

WindowsだとPort80も指定可能です。

CGIに関して

起動引数に–cgiを指定することでcgiが使用できるようになります。(cgiで使用する言語がpythonなので注意)

ただし、cgiは3.15で削除されることが明言されています。将来を考えると個人的にはあまり使用しない方がよさそうです。

できないこと

HTTPSの使用

HTTPSには対応していないようです。そのため、LAN中など、セキュリティが保たれた場所でのみ使ってください。

DELETE/PUT

DELETE/PUTメソッドで直接サーバ上のファイルを操作することができません。

スポンサーリンク

結果

Pythonを用いてサーバを起動することができました。

サーバにデータやファイルを保存しない簡単なシステムで、LAN内などの限られた環境での使用であれば簡単に使用できるようです。

スポンサーリンク

メモ

サーバ(http.server)のコードの場所

Pythonインストールフォルダ\Lib\http\server.py

例:

C:\Users\ユーザ名\AppData\Local\Programs\Python\Python310\Lib\http

スポンサーリンク

参考にさせていただいたサイト

http.server --- HTTP サーバー
ソースコード: Lib/http/server.py このモジュールは HTTP サーバを実装するためのクラスを提供しています。 Availability: not WASI. このモジュールは WebAssembly では動作しないか、利用不可です。詳しくは、 WebAssembly プラットフォーム を見てください...

コメント

タイトルとURLをコピーしました