Seu entendimento está correto, se você é do passado. Você é bastante descrito como parecia nos anos 90.
Sim, muitos idiomas podem ser executados diretamente por um plug-in de servidor da web. No PHP, o mod_php para Apache ainda é a maneira mais popular de hospedá-lo. No entanto, sites de alto tráfego usam uma abordagem mais moderna, usando apenas um servidor Web como proxy para FastCGI (no caso de PHP, é PHP-FPM )
a saída é incorporada às páginas HTML e é enviada de volta ao cliente.
Eu acho que você está se referindo ao chamado código espaguete do início dos anos 90, no entanto, a abordagem moderna é usar uma das muitas estruturas MVC. No caso do PHP, isso significaria, por exemplo, o Zend Framework (existem inúmeras alternativas).
Quanto ao ASP, você provavelmente está se referindo ao chamado "ASP clássico", que é obsoleto. Atualmente, é o ASP.NET, que pode usar qualquer uma das linguagens .NET (sendo C # a mais popular) e, claro, a estrutura .NET.
C e C ++ normalmente não são usados para aplicativos da web. Nesse caso, esses serviços são implementados como servidores independentes, como módulo para servidor da web ou como FastCGI .
O Perl pode ser executado diretamente do módulo de serviço da web usando mod_perl . Há também o PSGI , que é basicamente o clone do WSGI do Python .
Python é uma linguagem muito popular para aplicativos da web. Ele pode ser executado diretamente no servidor da web Apache via mod_python, no entanto, isso é obsoleto e não é recomendado. Atualmente, o caminho a seguir com o Python é via módulo do servidor WSGI . Servidor WSGI implementado em Python (por exemplo, CherryPy, WebPy) ou usando a pilha da Web independente do Python (o Tornado e o módulo da Web do Twisted são bons exemplos). E, claro, novamente, você provavelmente usará o framework MVC compatível com WSGI , o Django é o mais popular (novamente, várias alternativas disponíveis).
Ruby, novamente linguagem muito popular para aplicativos da web. Mais conhecido pelo framework Web Ruby on Rails, que novamente é MVC. Você pode executar o Ruby diretamente do módulo do servidor via mod_ruby ou via FastCGI .
Servlets / JSP são executados em servidores de aplicativos J2EE independentes, como JBoss ou Tomcat. É mais comumente usado para adicionar interface da web ao sistema comercial, em vez de criar aplicativos da web independentes.
O CGI clássico (ou seja, processo de desova em cada solicitação) tornou-se obsoleto há muitos anos. Ele foi substituído pelo FastCGI (onde o processo é demorado, e não gerado a cada solicitação), módulos de servidor, interfaces como WSGI e clones e soluções independentes.
Também o paradigma do processamento de solicitações evoluiu, com o CGI foi processado por solicitação. Em seguida, havia um pool de processos (ou pool de threads), cada processo (thread) manipulando uma solicitação por vez. No entanto, agora, a abordagem mais moderna é para servidores da Web e estruturas independentes usarem programação orientada a eventos.