3.2. HTTP en Python

El Protocolo Hypertext Transfer Protocol (HTTP) es el estándar de comunicación utilizado en la web para la transferencia de información entre clientes (navegadores, aplicaciones, scripts) y servidores. Python 3 ofrece varias bibliotecas para interactuar con servicios HTTP, permitiendo realizar solicitudes y manejar respuestas de manera sencilla.

3.2.1. Solicitudes HTTP

Al usar el HTTP, podemos realizar diferentes tipos de solicitudes, como las siguiente:

Método

Explicación

GET

Obtener datos de un servidor.

POST

Obtener datos de un servidor.

PUT

Actualizar recursos.

DELETE

Eliminar recursos.

3.2.2. Bibliotecas disponibles

En Python, existen varias bibliotecas principales para interactuar con el protocolo HTTP. Las más comunes son:

3.2.2.1. http.client

Python incluye la biblioteca estándar http.client, que permite realizar solicitudes HTTP de bajo nivel. Sin embargo, su uso es más complejo en comparación con otras bibliotecas modernas.

Ejemplo de una solicitud GET con la biblioteca http.client desde la consola interactiva de Python, ejecute el siguiente comando:

 >>> import http.client
 >>>
 >>> conn = http.client.HTTPSConnection("jsonplaceholder.typicode.com")
 >>> conn.request("GET", "/posts/1")
 >>>
 >>> response = conn.getresponse()
 >>> print(response.status, response.reason)
 >>> print(response.read().decode())
 >>>
 >>> conn.close()

3.2.2.2. urllib

El módulo estándar urllib proporciona herramientas para manejar URLs y realizar solicitudes HTTP. Es más fácil de usar que http.client, pero sigue siendo más complejo que alternativas modernas.

Ejemplo con el módulo urllib.request desde la consola interactiva de Python, ejecute el siguiente comando:

 >>> import urllib.request
 >>>
 >>> url = "https://jsonplaceholder.typicode.com/posts/1"
 >>> response = urllib.request.urlopen(url)
 >>>
 >>> print(response.status)  # Código de estado HTTP
 >>> print(response.read().decode())  # Contenido de la respuesta

3.2.2.3. requests

La biblioteca requests es la opción más popular y fácil de usar para interactuar con HTTP en Python. No está incluida en la biblioteca estándar, ya que es externa, más se puede instalar ejecutando el siguiente comando:

pip3 install requests

Ejemplo de una solicitud GET con la librería requests desde la consola interactiva de Python, ejecute el siguiente comando:

 >>> import requests
 >>>
 >>> url = "https://jsonplaceholder.typicode.com/posts/1"
 >>> response = requests.get(url)
 >>>
 >>> print(response.status_code)  # Código de estado HTTP
 >>> print(response.json())  # Respuesta en formato JSON

Ejemplo de una solicitud POST con la librería requests desde la consola interactiva de Python, ejecute el siguiente comando:

 >>> import requests
 >>>
 >>> url = "https://jsonplaceholder.typicode.com/posts"
 >>> data = {"title": "Nuevo Post", "body": "Contenido del post", "userId": 1}
 >>>
 >>> response = requests.post(url, json=data)
 >>> print(response.status_code)
 >>> print(response.json())

3.2.3. Conclusión

Python 3 ofrece múltiples formas de interactuar con el protocolo HTTP. Aunque los módulos estándar (http.client y urllib) son útiles, la biblioteca requests es la opción más recomendada debido a su facilidad de uso, soporte para autenticación, manejo de sesiones y compatibilidad con JSON.


Ver también

Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.


¿Cómo puedo ayudar?

¡Mi soporte está aquí para ayudar!

Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. UTM - Madrid, España.

La hora aquí es actualmente 7:35 PM UTM.

Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Contrata mi increíble soporte profesional