====== Cómo montar un servidor elemental (web o de otra cosa) para hacer pruebas ======
La idea es disponer de un programa simple que simule un servidor web en un cierto puerto, para así poder probar que tenemos acceso a ese puerto, empleando algún protocolo adecuado. En los ejemplos de más abajo se implementan servidores web, pero adecuando el protocolo, se podría implementar cualqier servicio.
==== Netcat (nc) ====
Referencia:
* [[https://en.wikipedia.org/wiki/Netcat#Setting_up_a_one-shot_webserver_on_port_8080_to_present_the_content_of_a_file]]
#!/bin/bash
while true
do
echo -e "HTTP/1.1 200 OK\r\n$(date)\r\n\r\nhello world from $(hostname) on $(date)
" | nc -vl 8080;
done
----------------
==== Python: ====
=== Python2: SimpleHTTPServer ===
Referencia:
* [[https://docs.python.org/2/library/simplehttpserver.html]]
import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
También se puede ejecutar el módulo por sí sólo:
python -m SimpleHTTPServer 8000
este servidor servirá archivos que se encuentren en el directorio donde está corriendo o en sus subdirectorios.
=== Python3: http.server ===
python3 -m http.server
Por defecto hace bind a **0.0.0.0** y usa el puerto **8000**, así que el navegador debe apuntar a: **http://0.0.0.0:8000**. Lo que devuelve es el listado del directorio donde está corriendo.
----------