Python de programación de redes: servidor HTTP

El servidor web HTTP es simplemente un proceso que se ejecuta en una máquina y escucha las requests HTTP entrantes por una IP y un número de puerto específicos, y luego envía una respuesta a la solicitud.

Python tiene un servidor web incorporado proporcionado por su biblioteca estándar, se puede llamar para una comunicación simple entre el cliente y el servidor. El http.server y socketserver son las dos funciones principales que se utilizan para crear un servidor web. El número de puerto se puede definir manualmente en el programa que se utiliza para acceder al servidor web. Este servidor web es funcional para muchos tipos de formatos de archivo, pero no tiene todas las funciones. Los archivos HTML estáticos simples se pueden analizar y servir fácilmente respondiendo con el código de respuesta requerido. A continuación se proporciona una implementación básica del servidor web HTTP de Python:

Ejemplo de archivo HTML:

<html>

   <cabeza>

       <title>Servidor HTTP de Python</title>

   </cabeza>

   <cuerpo>

       <h1>Servidor HTTP sencillo</h1>

       <p>¡Felicitaciones! ¡El servidor HTTP está funcionando!

Bienvenido a GeeksForGeeks</p>

   </cuerpo>

</html>

Python3

# Import libraries
import http.server
import socketserver
  
# Defining PORT number
PORT = 8080
  
# Creating handle
Handler = http.server.SimpleHTTPRequestHandler
  
# Creating TCPServer
http = socketserver.TCPServer(("", PORT), Handler)
  
# Getting logs
print("serving at port", PORT)
http.serve_forever()

Producción:

serving at port 8080
127.0.0.1 - - [17/Oct/2020 00:31:27] "GET / HTTP/1.1" 200 -



Ejecute el programa anterior en el directorio donde se guarda el archivo HTML. Después de crear el servidor web, abra el navegador web y escriba http://localhost:8080/ en la URL. 

Aquí, SimpleHTTPRequestHandler se usa para crear un controlador personalizado. TCPServer le dice al servidor que envíe y reciba mensajes. Para invocar TCPServer , se requieren dos argumentos, la dirección TCP, es decir, IP y PUERTO, y el segundo es el controlador. La dirección TCP es una tupla que consta de la dirección IP y el número de PUERTO. Serve_forever() es una función de la instancia de TCPServer que inicia el servidor y escucha y responde a las requests entrantes.

El host local es la máquina host (en nuestro caso, el sistema que estamos utilizando), que se utiliza para acceder a los servicios de red mediante la interfaz de red loopback.

Si el programa python se va a usar solo como servidor local, el siguiente programa se usa para ese propósito:

Python3

# Import libraries
import sys
import http.server
import socketserver
  
# Creating handle
HandlerClass = http.server.SimpleHTTPRequestHandler
  
# Creating Server
ServerClass  = http.server.HTTPServer
  
# Defining protocol
Protocol     = "HTTP/1.0"
  
# Setting TCP Address
if sys.argv[1:]:
    port = int(sys.argv[1])
else:
    port = 8000
server_address = ('127.0.0.1', port)
  
# invoking server
HandlerClass.protocol_version = Protocol
http = ServerClass(server_address, HandlerClass)
  
# Getting logs
sa = http.socket.getsockname()
print("Serving HTTP on", sa[0], "port", sa[1], "...")
http.serve_forever()

Producción:

Publicación traducida automáticamente

Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *