Servidor HTTP darkhttpd

Darkhttpd is a simple, fast HTTP 1.1 web server, written in C (efficient and portable) for static content. It has an small memory footprint based on a event loop, single threaded. It supports IPv6, HTTP GET-HEAD requests and Keep-Alive connections. - darkhttpd

Información sobre darkhttpd en el S.O.

  • El archivo ejecutable de darkhttpd se llama darkhttpd:

     alumno@servidor:~$ which darkhttpd
     /home/alumno/.local/sbin/darkhttpd
    
  • Para obtener la versión de darkhttpd con la cual estamos trabajando:

     alumno@servidor:~$ darkhttpd --help | head -1
     darkhttpd/1.12.from.git, copyright (c) 2003-2016 Emil Mikulic.
    
  • Para determinar si ya está en ejecución darkhttpd puedes usar el comando netstat -plutn como usuario root o bien ejecutar el comando ps aux | grep darkhttpd como usuario alumno.

Ejecutando a darkhttpd

  1. Crea un directorio donde mantendrás tus archivos, los cuales expondrás mediante el protocolo HTTP, y accede a él:

    alumno@servidor:~$ mkdir -p $HOME/www/darkhttpd01
    alumno@servidor:~$ cd $HOME/www/darkhttpd01
    

    En este caso /home/alumno/www/darkhttpd01 es el directorio ráiz para darkhttpd y está vacío.

  2. Ejecuta a darkhttpd, indicandole el directorio ráiz y el puerto TCP en el cual atenderá las conexiones:

    alumno@servidor:~/www/darkhttpd01$ darkhttpd $HOME/www/darkhttpd01 --port 1234
    

    Observarás que la terminal se queda bloqueada mientras darkhttpd esté en ejecución.

  3. Verifica la ejecución de darkhttpd, en otra terminal:

    alumno@servidor:~$ netstat -plutn
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
     tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      1180/darkhttpd
    

    En este caso darkhttpd está atendiendo (LISTEN) conexiones en todas las interfaces de red (0.0.0.0) en el puerto TCP 1234.

Para realizar una petición al darkhttpd haremos uso de un navegador web, simplemente visita la dirección http://127.0.0.1:1234 o bien http://localhost:1234.

En las lecturas con respecto al protocolo HTTP encontrarás términos como GET, POST, Header o Cabecera, User-Agent, etc. Para que dichos términos tengan un sentido más práctico, mientras darkhttpd está en ejecución, en Firefox pulsa el juego de teclas Ctrl+Shift+Q, lo anterior te abrirá una ventana incrustada en Firefox, accede a darkhttpd y observa la información otorgada por Web Developer Tools en su pestaña Red o Network.