2008-11-02 10 views

Respuesta

23

SCGI es un medio independiente del idioma para conectar un servidor web front-end y una aplicación web. WSGI es un estándar de interfaz específico de Python para aplicaciones web.

Aunque ambos tienen sus raíces en CGI, tienen un alcance bastante diferente y, de hecho, es bastante razonable utilizarlos a la vez, por ejemplo, tener un mod_scgi en el servidor web con una aplicación WSGI como servidor SCGI. Existen múltiples implementaciones de bibliotecas que ejecutarán aplicaciones WSGI como servidores SCGI para usted (por ejemplo, wsgitools, cherrypy).

Ambos son "confiables", en la medida en que pueda considerar una especificación confiable en lugar de una implementación en particular. En estos días, probablemente escribiría su aplicación como un WSGI invocable, y consideraría la cuestión del despliegue por separado.

Tal vez una interfaz Apache + mod_wsgi (incrustado) podría ser un poco más rápido que un mod_scgi + + (lib envoltorio SCGI) Apache, pero con toda probabilidad no va a ser enormemente diferente. Más valiosa es la capacidad de ejecutar la aplicación en una variedad de servidores, plataformas y estándares de conexión.

7

Son las dos especificaciones para conectar una aplicación web en un servidor web. Una diferencia evidente es que WSGI proviene del mundo de Python, y creo que no hay implementaciones que no sean de Python.

Las especificaciones generalmente no son comparables en función de mejor/más rápido/confiable.

Solo sus implementaciones son comparables, y estoy seguro de que encontrará buenas implementaciones de ambas especificaciones.

Quizás read y read.

9

SCGI (como FastCGI) es un protocolo (serializado) adecuado para la comunicación entre procesos entre un servidor web y una aplicación web.

WSGI es una API de Python, que conecta dos (o más) módulos compatibles con Python WSGI dentro del mismo proceso (intérprete de Python). Un módulo representa el servidor web (ya sea una implementación Python en el servidor web en proceso o una puerta de enlace a un servidor web en otro proceso, por ejemplo, SCGI). El otro módulo es o representa la aplicación web. Además, cero o más módulos entre estos dos módulos, pueden servir como módulos de "middleware" de WSGI, haciendo cosas como administración de sesiones/cookies, almacenamiento en caché de contenido, autenticación, etc. La API de WSGI usa funciones de lenguaje Python como iteración/generadores y aprobación de llamadas objetos entre los módulos compatibles con WSGI.

+0

Respuesta perfecta. – DejanLekic

Cuestiones relacionadas