webサーバを書いてみた

ふと何分で書けるのかやってみたくなった。
36分だった。
http://www.ruby-lang.org/ja/man/html/TCPServer.html のコードに毛を生やしただけ。

#!/usr/bin/env ruby

require "socket"

gs = TCPServer.open("", 8080)
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))

while true
  Thread.start(gs.accept) do |s|       # save to dynamic variable
    print(s, " is accepted\n")
    while line = s.gets
      p line
      break if line =~ /^\r?\n$/
    end 
    s.write(<<EOT)
HTTP/1.0 200 OK
Content-Type: text/html

<h1>toshi.homeip.net</h1>
EOT
    print(s, " is gone\n")
    s.close
  end 
end

リクエスト無視、レスポンスハードコードでwebサーバと言えるのか。
詐欺と言ってもいいだろう。