1. ホーム
  2. command-line

[解決済み】Pythonのhttp.server(またはSimpleHTTPServer)に代わる、より高速なものは何ですか?)

2022-03-27 13:18:58

質問

Pythonの http.server (または Python 2 の SimpleHTTPServer) は、コマンドラインからカレントディレクトリの内容を提供する素晴らしい方法です。

python -m http.server

ただ、ウェブサーバーとしては、非常にスローなんですが......。

シングルスレッドで動作しているような挙動で、RequireJSを使ったJavaScript AMDモジュールの読み込みでタイムアウトエラーが発生することがあります。画像なしのシンプルなページを読み込むのに5~10秒かかることもあります。

同じように便利で、より高速な代替手段は?

どのように解決するのですか?

http-サーバ はとても便利で、PythonのSimpleHTTPServerよりもずっと速いです。これは主に、リクエストをシリアライズする代わりに、リクエストを同時に処理するために非同期IOを使用するためです。

インストール方法

node.jsをインストールしていない場合は、インストールします。その後、nodeのパッケージマネージャ( npm ) を使って、パッケージをインストールします。 -g オプションを使用すると、グローバルにインストールすることができます。 Windowsの場合は管理者権限を持ったプロンプトが必要で、Linux/OSXの場合は sudo コマンドを実行します。

npm install http-server -g

これは、必要な依存関係をダウンロードし、インストールします。 http-server .

使用方法

これで、どのディレクトリからでも、入力できるようになりました。

http-server [path] [options]

パスはオプションで、デフォルトは ./public が存在する場合、それ以外の場合は ./ .

オプションは[defaults]です。

  • -p リッスンするポート番号 [8080]。
  • -a バインド先のホストアドレス [localhost] を指定します。
  • -i ディレクトリのインデックスページを表示する [True]。
  • -s または --silent サイレントモードではコンソールにログを出力しない
  • -h または --help ヘルプメッセージを表示し、終了する

そこで、ポート8000でカレントディレクトリを提供するために、次のように入力します。

http-server -p 8000