Simple web server en Ruby utilizando sockets

Simple web server en Ruby utilizando sockets

Simple web server en Ruby utilizando sockets

Finalmente este simple web server en ruby será el último de la serie de servers.

A pesar de que ruby no es el lenguaje que más suelo usar la verdad,  lo veo agradable, limpio,  rápido y en conclusión ahorras mucho código, lo cual me recuerda a python.

Os dejo la documentación de socket en ruby.

Ahí va el código del simple web server en ruby.

#!/usr/bin/env ruby

require 'socket'

# En primer lugar levantamos un nuevo server con la direccion y el puerto
server = TCPServer.new('localhost', 8080)

# Para empezar iniciamos el loop de conexiones
loop do
 
  # Y aceptamos las conexiones entrantes
  socket = server.accept
  
  #Guardamos el request en una variable
  request = socket.gets

  # Contenido de la página principal
  response = "
	<html><head><title>Servidor Web en RUBY</title>\r\n\r\n
	<style>body { background-color: #A9D0F5 }</style></head>\r\n
	<body><center><h1>Hola mundo!</h1><br>\r\n
        <img src=\"icono.png\"/></center></body></html>\r\n"
  # Comaparación de los request para mandar los datos de la imágenes
  if request[0,16] == "GET /favicon.ico"
        #Abrimos las imagenes las leemos y la enviamos con sus cabeceras correspondientes
	imagen = File.open("favicon.ico", "rb")
	socket.print "HTTP/1.1 200 OK\r\n" +
               "Content-Type: image/x-icon\r\n"
  	socket.print "\r\n"
	socket.write(imagen.read())
  elsif request[0,14] == "GET /icono.png"
        # Abrimos las imagenes las leemos y la enviamos con sus cabeceras correspondientes
	imagen = File.open("icono.png", "rb")
	socket.print "HTTP/1.1 200 OK\r\n" +
               "Content-Type: image/png\r\n"
  	socket.print "\r\n"
	socket.write(imagen.read())

  else
        # Enviamos la cabecera de la página principal
	socket.print "HTTP/1.1 200 OK\n" +
               "Content-Type: text/html\n" +
	       "<!DOCTYPE html>\n" +
               "\n"
	socket.print response
  end

  socket.close
end

Ya veís lo sencillo y lo fácil que es levantar nuestro Simple web server con ruby, es posible que queraís echar un vistazo a nuestros otros ejemplos de simple web server, aquí los teneís.

 

Pin It on Pinterest