Servidor local de Python

Abid Ullah 15 febrero 2024
  1. Crear un servidor HTTP desde cero en Python
  2. ¿Qué es un servidor HTTP?
  3. Cree un servidor HTTP básico con un comando en Python
Servidor local de Python

Este tutorial nos mostrará cómo crear un servidor HTTP en Python. Y después de seguir este tutorial, será fácil para nosotros configurar un servidor HTTP con solo unas pocas líneas de código.

Una vez que hayamos creado nuestro servidor HTTP, podemos comenzar a servir archivos desde él. Profundicemos en la guía paso a paso del servidor HTTP de Python para obtener más ayuda.

Crear un servidor HTTP desde cero en Python

En algún momento de nuestra carrera como ingenieros de software, se nos pedirá que trabajemos con servidores web, independientemente de nuestro ingeniero de software. Quizás necesitemos desarrollar un servidor API para un servicio de back-end.

Tal vez simplemente estaríamos configurando un servidor web para nuestro sitio web.

Python simplifica el servicio de archivos desde un directorio utilizando un servidor HTTP primario. Esta no es una técnica innovadora, pero es útil cuando la necesitamos.

¿Qué es un servidor HTTP?

Un servidor HTTP es un programa informático (o posiblemente un componente de software de otro programa) que actúa como un servidor en una arquitectura cliente-servidor al implementar la parte del servidor de los protocolos de red HTTP y/o HTTPS.

Un servidor HTTP supervisa las solicitudes entrantes de los clientes (realizadas por agentes de usuario como navegadores, rastreadores web, etc.) y responde a cada solicitud transmitiendo el recurso web solicitado o devolviendo un mensaje de error HTTP.

Un servidor HTTP también contiene enlaces para administrar extensiones de protocolo a HTTP (como WebDAV) o mensajes de otros protocolos encerrados en mensajes HTTP (como SOAP) para admitir interacciones de programa a programa.

La complejidad de la implementación de un servidor HTTP puede variar desde un componente pequeño y controlable hasta una implementación de software con todas las funciones de HTTP y otros protocolos que pueden operar en segundo plano y como uno o más procesos.

Un servidor HTTP se encuentra en todo tipo de computadora, incluidos los sistemas integrados y las supercomputadoras, y también es necesario para operar interfaces web (aplicaciones web), entre otras cosas.

Aclaremos este punto con más precisión.

Considere abrir nuestro navegador Chrome y escribir www.gmail.com en la barra de direcciones.

La página de inicio de Gmail se mostrará en la ventana de nuestro navegador web después de ejecutar el enlace. Sin embargo, ¿qué sucedió exactamente detrás de escena?

Honestamente, han sucedido muchas cosas, y podemos dedicar algo de tiempo a explorar el misterioso funcionamiento detrás de cómo sucedió esto. Sin embargo, discutiremos este tema con un ejemplo para mayor claridad y concisión.

Cuando ingresamos www.gmail.com en nuestro navegador, nuestro navegador generará un mensaje de red conocido como solicitud HTTP. Esta solicitud se enviará a una máquina en Gmail que opera un servidor web y permanecerá allí hasta que se procese.

Este servidor web detectará nuestra solicitud, la procesará y luego nos proporcionará el HTML para la página de inicio de gmail como respuesta.

Al final, nuestro navegador web nos muestra este HTML en la pantalla de nuestro sistema, que es lo que vemos cuando miramos nuestra computadora.

Solicitud y proceso del servidor

Así es como se envía y procesa una solicitud. Ahora que conocemos el proceso detrás de escena, podemos pasar fácilmente a nuestro tema principal de crear un servidor HTTP usando Python.

Cree un servidor HTTP básico con un comando en Python

Instalación

Podemos instalar Python desde aquí si aún no lo tenemos instalado (probablemente usando Windows).

Como tenemos Python instalado, podemos continuar con el proceso de creación de un servidor HTTP. Para comenzar, abra la terminal y escriba el siguiente comando en la terminal.

Código de ejemplo:

python -m http.server

Cuando ejecutemos el comando, obtendremos un mensaje que notifica servidor iniciado y servidor detenido, dependiendo de la configuración de nuestras computadoras.

Y ahí lo tenemos: ¡nuestro propio servidor Python! Es uno simple, un servidor web en el puerto predeterminado de nuestra máquina de 8000.

Únicamente realiza esta función. También es posible cambiar el puerto al incluir el nuevo número de puerto al final de la línea, como se ve aquí:

python -m http.server 8080

El código anterior cambia el puerto del servidor del puerto predeterminado 8000 a 8080.

Ahora debemos ir a http://localhost:8000/ o http://127.0.0.1:8000/ para llegar al servidor en nuestra red local. Desde este punto podemos ver todas las carpetas que componen nuestro almacenamiento local y todos los datos.

También podemos visitar una página HTML; cuando lo hagamos, nuestro navegador web volverá a crear la página para nosotros automáticamente.

BaseHTTPRequestHandler

BaseHTTPRequestHandler es una clase que se utiliza para administrar las diversas solicitudes enviadas a un servidor. Maneja las solicitudes Get y Post, no la solicitud HTTP en sí.

Servidor HTTP

Esta función, conocida como HTTPServer(dirección del servidor, BASE HTTP REQUEST HANDLER(),), se utiliza para guardar el número de puerto del servidor además del nombre del servidor.

El enfoque paso a paso

  1. Construiremos una clase encargada de gestionar las solicitudes del servidor.
  2. Después de que terminemos, desarrollaremos un método en esa clase que se utilizará para las solicitudes GET.
  3. Dentro de los límites de esa función, se redactará el código HTML que se utilizará para mostrarlo en el servidor.
  4. Al final, utilizaremos el método HTTPServer(), que es responsable del funcionamiento de nuestro servidor.

Ahora, implementaremos los pasos descritos anteriormente usando el lenguaje Python.

# importing all the functions
# from http.server module
# * means all
from http.server import *

# creating a class for handling
# basic Get and Post Requests


class GFG(BaseHTTPRequestHandler):
    # We will create a function
    # for Get Request using the command below
    def do_GET(self):
        # Successful Response --> 200
        self.send_response(200)
        # Type of file that we are using for creating our
        # web server.
        self.send_header("content-type", "text/html")
        self.end_headers()
        # whatever we write in our function,
        # we can see it at the web-server
        self.wfile.write("<h1>AO-(AbidOrakzai)</h1>".encode())


# this object takes a report
# number and the server-Name
# for running the server
port = HTTPServer(("", 5555), GFG)
# We use this for running our
# server as long as we want, i.e., forever
port.serve_forever()

Producción :

AO-(AbidOrakzai)

¿Cómo podemos iniciar nuestro servidor HTTP?

Podemos usar las siguientes instrucciones de terminal para iniciar nuestro servidor HTTP.

Código de ejemplo:

python our_file_name.py

Y el último paso es acceder al servidor en el puerto 5555. Podemos utilizar el navegador http://localhost:5555/ o http://127.0.0.1:5555/.

Esperamos que este artículo le sea útil para obtener un mejor conocimiento de cómo se puede crear un servidor HTTP desde cero usando Python.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

Artículo relacionado - Python Server