如何从头开始创建ruby服务器?

时间:2012-03-18 13:30:04

标签: ruby rubygems

我想学习如何在ruby中创建一个简单的本地服务器,就像使用webbrick一样。这里的主要目的是创建一个Web应用程序,我想在不使用任何现有框架的情况下自己完成,这样我就可以学习内部工作。

1 个答案:

答案 0 :(得分:3)

我认为你只需要开始这样做。

我的启动服务器:

require 'socket'

server = TCPServer.new '127.0.0.1', 8888 

while session = server.accept
  session.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n"
  if request = session.gets
    filename = request.gsub(/GET\ \//, '').gsub(/\ HTTP.*/, '').chomp
    filename = "index.html" if filename == ""
    session.print "You asked for a file called #{filename}"
  end
  session.close 
end

当然,根据文件名,您应该尝试获取文件并将其发送到客户端,可能是这样的:

displayfile = File.open(filename, 'r')
content = displayfile.read()
session.print content

如果你想学习,只是开始编码和尝试不同的东西,你也可以看一下github上的一些web服务器的源代码。但是,在这里发布他们的代码毫无意义。

我刚刚向您展示了真正的基础知识。