Hay muchos cliente HTTP Python, pero el más utilizado y más fácil de solicitudes

 

prefacio

El texto de texto e imágenes de la red, sólo para aprender, intercambiar, no para fines comerciales, pertenece al autor original, si alguna pregunta, por favor en contacto con nosotros para recibir tratamiento.

Autor: Beijing sigue siendo la prueba del software del cerebro

PD: Si los materiales de aprendizaje de Python necesarios se pueden agregar a un socio pequeño clic en el enlace de abajo para obtener su propio http://t.cn/A6Zvjdun

Las conexiones persistentes

Las conexiones persistentes desde el estándar HTTP 1.1, aunque muchas aplicaciones no se utilicen. Cuando se utiliza en la solicitud de modo sencillo (por ejemplo, usando la función get), la conexión de retorno está cerrado, objeto de sesión permite la reutilización de la conexión abierta.

 

Cada conexión se almacena en la agrupación de conexiones (por defecto 10)

Reutilizar conexión TCP tiene muchas ventajas de rendimiento:

  • Reduce la CPU y uso de memoria (abierta menos simultánea).
  • La reducción de la demora solicitud posterior (sin protocolo de enlace TCP).
  • Se puede producir una excepción y no cerrar una conexión TCP.

protocolo HTTP también se proporciona una tubería, canalización permite que múltiples solicitudes enviadas en la misma conexión, sin esperar una respuesta (por lotes). Por desgracia, solicitando la biblioteca no soporta esta característica. Sin embargo, las solicitudes canalizadas pueden no ser tan rápido que se transmiten en paralelo. De hecho, el protocolo HTTP 1.1 con la solicitud de transmisión de fuerza transmite una respuesta en el mismo orden - FIFO.

paralelo

Las principales solicitudes de devolución se sincronizan. requests.get programa de llamada ( "http://example.org") se bloqueará hasta que el servidor HTTP está totalmente en lo que va a responder. Puede aliviar este problema mediante el uso de un hilo de concurrencia grupo de subprocesos proporcionado. Permite una manera parallelized petición HTTP muy rápida.

 

También puede ayudar a las bibliotecas solicitudes de futuros:

La importación de la sesión requests_futures

El uso de futuros en la solicitud

Por defecto, crear un programa de trabajo con dos hilos, pero el programa puede incluso pasar parámetros a max_workers propio programa de ejecución para FuturSession objetos para personalizar fácilmente este valor, por ejemplo: FuturesSession (ejecutor = ThreadPoolExecutor (max_workers = 10)) .

asincrónico

Como se describió anteriormente, la solicitud está completamente sincronizada. Esto evita que la aplicación a la espera de una respuesta del servidor, reduciendo así la velocidad del programa. HTTP peticiones formuladas en el hilo es una solución, pero tiene su propio hilo de arriba, lo que implica el paralelismo, esto no es algo que todo el mundo siempre contento de ver en el programa.

 

A partir de la versión 3.5, Python utilizará la inducción asíncrono como su núcleo. aiohttp biblioteca proporciona una asyncio basado en cliente HTTP asincrónico. Esta biblioteca permite a petición de transmisión secuencial, pero sin esperar una posterior respuesta al envío de una nueva solicitud de nuevo. En contraste con HTTP agua, aiohttp transmite en paralelo a través de una pluralidad de peticiones de conexión, para evitar el tipo de problema se ha explicado anteriormente.

 

Todas estas soluciones ofrecen diferentes maneras de aumentar la velocidad de los clientes HTTP.

rendimiento

El siguiente código envía una solicitud al HTTPbin.org. En este ejemplo se implementa todas las tecnologías mencionadas anteriormente y se mide el tiempo.

La ejecución de este programa dará el siguiente resultado:

Transmisión

Otro velocidad efectiva se optimiza el streaming petición. Se realiza una solicitud, se descargará de inmediato el cuerpo de la respuesta por defecto. aiohttp fluir parámetros o atributo contenido solicitado biblioteca proporcionado se proporciona un método para el contenido completo de los cuales no se carga inmediatamente en la memoria en la ejecución de la solicitud.

 

Con el flujo de aiohttp

Con el fin de evitar posibles inútilmente asignados cientos de megabytes de memoria, no cargar todo el contenido es muy importante. Si el programa no necesita el acceso general a todo el contenido, pero puede manejar bloque, lo mejor es utilizar estos métodos. Por ejemplo, si desea guardar el contenido y la escritura en el archivo, a una manzana es leer y escribir al mismo tiempo que tendrá más eficiente de la memoria que leer todo el texto HTTP (asignar una gran cantidad de memoria). Y luego escribe en el disco.

 

2020 Última Tutorial de Python:

Si quieres aprender Python en o está aprendiendo Python, Python mucho tutorial de ella, pero es hasta la fecha?

Tal vez se aprende lo que puede ser la escuela hace dos años, la gente tenía contenido, en esta pequeña serie para compartir la última oleada de 2020 Guía de aprendizaje.

Quedarse toda la noche terminando de productos secos: la entrada de programación visual Python + + PyCharm PyQT5

 

 

Quedarse toda la noche terminando de productos secos: la entrada de programación visual Python + + PyCharm PyQT5

 

 

Quedarse toda la noche terminando de productos secos: la entrada de programación visual Python + + PyCharm PyQT5

 

 

Quedarse toda la noche terminando de productos secos: la entrada de programación visual Python + + PyCharm PyQT5

 

 

Estos tutoriales han sido pequeñas series para cada uno lleno y listo, espero que está aprendiendo a ayuda!

La obtención de carta privada "datos" Xiaobian, se puede obtener gratis Oh!

 

Supongo que te gusta

Origin www.cnblogs.com/python0921/p/12668755.html
Recomendado
Clasificación