netcatによるワンライナーWebサーバ

起動方法

/bin/bash -c "while :; do echo -ne 'HTTP/1.0 200 OK\r\nContent-Length: 0\r\n\r\n' | nc -l -p 8080 -w 30; done"

終了方法

psコマンドでpidを確認後、killコマンドで終了させる。

kill -9 プロセスID

終了直後にncコマンドのプロセスが残っていることがあるが、しばらくすると消える。
もう少しスマートに出来ると良いのだが。

whileで無限ループさせているため、ncコマンドだけをkillしようとしてもうまくいかない。すぐに次のncが起動してしまうので。そこでbash -cのとして一枚かぶせている。

確認方法

curlwgetなどを使ってアクセスすれば動作確認可能。ブラウザでも可能だが、自分のMac環境だとGoogle chromeは接続できなかった。Firefoxsafariは平気だった。

curl http://localhost:8080

上記コマンドを投げると、nc側のコンソールには、以下のように出力されている。

GET / HTTP/1.1
User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5
Host: localhost:8080
Accept: */*