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