variable - write python in html
¿Hay una diferencia de velocidad entre WSGI y FCGI? (2)
De la web he deducido que WSGI es un CGI para el desarrollo / frameworks de python. FCGI parece ser una puerta de enlace más generalizada para una variedad de idiomas. No sé la diferencia de rendimiento entre los dos en referencia a los lenguajes python y C / ++.
Correcto, WSGI es una definición de API programática de Python y FASTCGI es una definición de protocolo de cable de socket independiente del idioma. Efectivamente están en diferentes capas con WSGI siendo una capa más alta. En otras palabras, uno puede implementar WSGI sobre algo que pasó a usar FASTCGI para comunicarse con un servidor web, pero no al revés.
En general, FASTCGI es un protocolo de conexión de socket significa que siempre necesita algún tipo de interfaz programática en la parte superior para usarlo. Para Python, una de esas opciones es WSGI. Como FASTCGI es solo un medio para un fin, uno realmente no puede comparar su rendimiento con WSGI en ese caso porque WSGI no es un protocolo comparable de socket, sino un usuario de FASTCGI.
Se podría intentar y comparar el rendimiento de diferentes interfaces de idiomas sobre FASTCGI, pero en general eso es bastante insignificante en sí mismo ya que la capa de red más baja y el manejo de solicitudes del servidor no son el cuello de botella. En cambio, su código de aplicación y la base de datos serán.
Son dos cosas diferentes. WSGI es una interfaz específica de Python para escribir aplicaciones web. Hay contenedores para casi cualquier protocolo de servidor web para proporcionar la interfaz WSGI. FastGCI (FCGI) es uno de estos protocolos de servidor web. Entonces, WSGI es una capa de abstracción, mientras que CGI / FastCGI / mod_python es la forma en que los servidores web reales hablan con la aplicación. Algún código tiene que traducir la interfaz nativa a WSGI (hay un módulo CGI en wsgiref
, hay flup
para FastCGI, etc.). También hay mod_wsgi para Apache, que hace la traducción directamente en un módulo Apache, por lo que no necesita ningún contenedor Python.