Tu comprensión es correcta, si eres del pasado. Estás más o menos descrito como parecía en la década de 1990.
Sí, un complemento de servidor web puede ejecutar muchos idiomas directamente. Justo para PHP, mod_php para Apache sigue siendo la forma más popular de alojarlo. Sin embargo, los sitios de alto tráfico utilizan un enfoque más moderno, utilizando el servidor web solo como un proxy para FastCGI (en el caso de PHP es PHP-FPM )
la salida se incrusta en páginas HTML y luego se envía de vuelta al cliente.
Creo que te estás refiriendo al llamado código de espagueti de principios de los 90, sin embargo, el enfoque moderno es usar uno de los muchos marcos MVC. En el caso de PHP, eso significaría, por ejemplo, Zend Framework (existen numerosas alternativas).
En cuanto a ASP, probablemente se refiera al llamado "ASP clásico", que es obsoleto. Actualmente es ASP.NET, que puede usar cualquiera de los lenguajes .NET (C # es el más popular) y, por supuesto, el marco .NET.
C y C ++ generalmente no se usan para aplicaciones web. Si es así, dichos servicios se implementan como servidores independientes, como módulo para servidor web o como FastCGI .
Perl se puede ejecutar directamente desde el módulo de servicio web utilizando mod_perl . También hay PSGI , que es básicamente un clon del WSGI de Python .
Python es un lenguaje muy popular para aplicaciones web. Se puede ejecutar directamente desde el servidor web Apache a través de mod_python, sin embargo, eso es obsoleto y no se recomienda. Actualmente, el camino a seguir con Python es a través del módulo del servidor WSGI . Servidor WSGI implementado en Python (por ejemplo, CherryPy, WebPy) o usando la pila web Python independiente (Tornado y el módulo web de Twisted son buenos ejemplos). Y, por supuesto, una vez más, lo más probable es que esté utilizando el marco MVC compatible con WSGI , Django es el más popular (nuevamente, hay varias alternativas disponibles).
Ruby, nuevamente lenguaje muy popular para aplicaciones web. Mejor conocido por el framework web Ruby on Rails, que nuevamente es MVC. Puede ejecutar Ruby directamente desde el módulo del servidor a través de mod_ruby o FastCGI .
Servlets / JSP se ejecutan en servidores de aplicaciones J2EE independientes, como JBoss o Tomcat. Se usa más comúnmente para agregar una interfaz web al sistema empresarial en lugar de crear aplicaciones web independientes.
El CGI clásico (es decir, el proceso de generación en cada solicitud) se ha vuelto obsoleto hace muchos años. Ha sido reemplazado por FastCGI (donde el proceso es de larga duración, en lugar de generarse en cada solicitud), módulos de servidor, interfaces como WSGI y clones y soluciones independientes.
También ha evolucionado el paradigma del procesamiento de solicitudes, con CGI fue el proceso por solicitud. Luego estaba el grupo de procesos (o grupo de subprocesos), cada proceso (subproceso) manejaba una solicitud a la vez. Sin embargo, ahora, el enfoque más moderno es que los servidores web y los marcos independientes utilicen la programación controlada por eventos.