Como desarrollador web, habrá un momento en el que tu necesites crear tu propio servidor web local.

Tal vez sea porque tu vas a estar en un vuelo y quieres trabajar en tu proyecto, lejos del servicio de Internet. O quizá sólo quieras una forma rápida de acceder a los archivos desde otro ordenador de tu red doméstica.

Siempre y cuando surja la necesidad, configurar un servidor HTTP local es una habilidad útil.

¿Qué es un servidor HTTP?

En pocas palabras, un servidor HTTP o servidor web es un proceso que se ejecuta en una máquina que escucha las solicitudes entrantes y sirve páginas web.

Por ejemplo, cuando tu escribes https://www.freecodecamp.org/news/ en tu navegador, hay un servidor en algún lugar escuchando esa petición. En respuesta, devuelve los datos para que tu navegador pueda mostrar la página de FreeCodeCamp Developer News.

Por supuesto, hay mucho más que ocurre detrás de escenas, pero para los fines de este tutorial, eso es todo lo que realmente necesitas saber.

Cómo configurar un servidor HTTP local

  1. Instala Python.
  2. Abra el símbolo del sistema o el terminal y ejecute python -V.
  3. Vaya al directorio de su proyecto con cd en sistemas *nix o MacOS o CD para Windows
  4. Ejecute los siguientes comandos para iniciar un servidor HTTP local:
# Si, "python -V" retorna 2.X.X
python -m SimpleHTTPServer

# Si, "python -V" retorna 3.X.X
python3 -m http.server

# Nota para Window, tu puedes necesitar correr python -m http.server en lugar de python3 -m http.server
# Tenga en cuenta que en Windows, puede ser necesario ejecutar python -m http.server en lugar de python3 -m http.server
Terminal

Notarás que ambos comandos se ven muy diferentes - uno llama a SimpleHTTPServer y el otro a http.server. Esto se debe a que el módulo SimpleHTTPServer fue incorporado dentro de Python y http.server en Python 3. Ambos funcionan de la misma manera.

Ahora, cuando tu vayas a http://localhost:8000/ deberías ver una lista de todos los archivos de tu directorio. Entonces puedes hacer clic en el archivo HTML que quieras ver.

Ten en cuenta que SimpleHTTPServer y http.server son sólo para probar cosas localmente. Sólo hacen comprobaciones de seguridad muy básicas y no deberían usarse en producción.

Cómo enviar archivos localmente

Para montar una especie de sistema NAS (Network Attached Storage) rápido y sucio:

  1. Asegúrese de que ambos ordenadores están conectados a través de la misma red mediante LAN o WiFi.
  2. Abra el símbolo del sistema o el terminal y ejecute python -V para asegurarse de que Python está instalado.
  3. Vaya al directorio cuyo archivo tu deseas compartir utilizando el comando cd (cambio de directorio).
  4. Vaya al directorio con el archivo que tu deseas compartir utilizando cd en sistemas *nix o MacOS o CD para Windows.
  5. Inicie su servidor HTTP con python -m SimpleHTTPServer o python3 -m http.server.
  6. Abre una nueva terminal y escribe ifconfig en *nix o MacOS o ipconfig en Windows para encontrar tu dirección IP.

Ahora en el segundo ordenador o dispositivo:

  1. Abra el navegador y escriba la dirección IP de la primera máquina, junto con el puerto 8000: http://[dirección ip]:8000

Se abrirá una página que muestra todos los archivos del directorio que se comparte desde el primer ordenador. Si la página tarda demasiado en cargarse, es posible que tu tengas que ajustar la configuración del cortafuegos en el primer ordenador.

Traducido del artículo SimpleHTTPServer Explained: How to Send Files Using Python