(Linux/CUI) lhttpzip

概要
ZIP 内の HTML ファイルを、解凍することなく直接ブラウザで閲覧するためのローカル HTTP サーバです。
ZIP でまとめた HTML ファイルを閲覧したいけれど、解凍するのが面倒な時や、ちょっと内容を確認したい時などに。

ブラウザは任意のものを使ってください。
コマンドラインプログラムなので、端末上で実行して、ローカルサーバとして動作させます。

  • 一般的な ZIP ファイルのみ対応。
    (64bit ZIP や、暗号化、無圧縮/Deflate 以外の圧縮方法などには対応していません)
  • 日本語ファイル名などを含む場合でも表示できます。
    (UTF-8 以外の場合、-c オプションで文字エンコードを指定しないと文字化けします)
  • URL でファイルではなくディレクトリを指定した場合、そのディレクトリ下に index.html または index.htm がない場合はファイルのリストを表示します。
    (-I コマンドで常にファイルリストを表示できます)
仕組み
HTTP サーバとして起動したこのプログラムが、ブラウザとデータのやりとりをします。
ブラウザ側から要求されたファイルは、このプログラムが ZIP ファイル内から見つけて展開し、データをブラウザに渡します。
ソースコード
>> lhttpzip-1.0.0.tar.bz2
(MD5: 3a003443ebcba7dfaf9f1fb758b7e5c9)

言語: C
License: BSD-3
動作環境: Linux
コンパイル
C コンパイラ、make、zlib の開発用ファイルが必要です。
コンパイラが GCC 以外の場合は、iconv も必要。

Debian/Ubuntu: gcc make zlib1g-dev

$ tar xf lhttpzip-1.0.0.tar.bz2
$ cd lhttpzip-1.0.0
$ ./configure
$ make
$ sudo make install

/usr/local/bin に、実行ファイル lhttpzip がコピーされます。
使い方
端末上で以下のコマンドを実行します。
閲覧したい ZIP ファイルのパスを引数として渡します。

$ lhttpzip <zip_filename>

正常にサーバとして起動した場合、プログラムはそのまま実行され続けます。
その状態で、ブラウザで以下の URL を開きます。

http://localhost:8080/
または
http://127.0.0.1:8080/

ZIP 内のルートディレクトリに index.html または index.htm があれば、そのファイルが表示されます。
ない場合はファイルのリストが表示されます。

プログラムがサーバとして実行されている間のみ、閲覧できます。
プログラムを終了させると、ブラウザ上で閲覧できません。

プログラムを終了させるには、実行している端末上で Ctrl+C を押すか、kill コマンドでプロセスを終了させます。