イントラ NW 内のサーバ上の何らかのファイルを見たい、あるいは手元に持ってきたい時に簡単にアクセスしたい、けど Apache や nginx を入れるほどではないという時に使っています(決して外部公開用途ではないです)。
一番シンプルな使い方が python3 -m http.server 8080 で、実行すると下記のようになります。
1 2 3 | % python3 -m http.server 8080 Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ... |
です。
これでこのコマンドを実行したディレクトリを webroot として http://0.0.0.0:8080/ で公開することができます。
IPv6 で公開したい場合には下記を
1 2 3 | % python3 -m http.server 8080 -b :: Serving HTTP on :: port 8080 (http://[::]:8080/) ... |
IPv4 & IPv6 の Dual stack で公開したい場合には下記を
1 2 3 | % python3 -m http.server 8080 -b 0.0.0.0 -b :: Serving HTTP on :: port 8080 (http://[::]:8080/) ... |
それぞれ使っています。
いわゆる High port であれば上記のように root 権限は不要で実行出来ます。
Well-known port で実行したい場合には root 権限が必要です。
また、一時的ではなく、ある程度使い続けたい場合には nohup python3 -m http.server 8080 -b 0.0.0.0 -b :: & のようにすることが多いです。