Servidor local de Python
- Crear un servidor HTTP desde cero en Python
- ¿Qué es un servidor HTTP?
- Cree un servidor HTTP básico con un comando en 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.
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
- Construiremos una clase encargada de gestionar las solicitudes del servidor.
- Después de que terminemos, desarrollaremos un método en esa clase que se utilizará para las solicitudes
GET
. - Dentro de los límites de esa función, se redactará el código HTML que se utilizará para mostrarlo en el servidor.
- 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.
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