bashttp - 超シンプル16行のBash製Webサーバー

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

Spider web with water beads network dewdrop

インターネットになくてはならない存在の「Webサーバー」。ApacheやNginx等の多機能なWebサーバーは大変複雑な構造となっていますが、その基本的な考え方は大変シンプルです。

本日紹介する「bashttp」は、Webサーバーのシンプルさを実証するBash製のWebサーバーです。基本的な機能だけしか利用できないものの、わずか16行のBashコードで、Webサーバーの基礎的な部分を実装しています。

以下使用方法を説明します。

目次

bashttpを実行してみる

bashttpのソースコードをcloneし、フォルダ内のserver.shを実行します。

$ git clone https://github.com/EddySchauHai/bashttp.git
$ cd bashttp
$ sh server.sh 

Webブラウザで「http://localhost:1337」にアクセスします。

S 20220806 200604

▲結果が表示されました。他の結果を表示することはできませんが、リクエストに対するレスポンスとしてWebブラウザに「Hello!」という文字列が表示されています。

server.shのソースコードは以下の通りです。

#!/bin/bash

trap "echo Exited!; exit;" SIGINT SIGTERM

PORT="${1:-1337}"

main () {
    echo "Starting..."

    while true 
    do
        printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | nc -c -l ${PORT}
    done
}

main

本体は無限ループで、ncコマンドを利用してブラウザとデータをやりとりしている事がわかります。

まとめ

bashttpはBashスクリプト製のシンプルなWebサーバーです。Hacker NewsにはBashで作られた別のWebサーバーや、他の言語で作られたシンプルなWebサーバーの情報が寄せられています。Webサーバーに興味のある方は参考にしてみてはいかがでしょうか。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次