La tua comprensione è corretta, se vieni dal passato. Sei praticamente descritto come sembrava negli anni '90.
Sì, molte lingue possono essere eseguite direttamente da un plug-in del server web. Giusto per PHP, mod_php per Apache è ancora il modo più popolare per ospitarla. Tuttavia, i siti ad alto traffico utilizzano un approccio più moderno, utilizzando il web server solo come proxy per FastCGI (in caso di PHP è PHP-FPM )
the output is embed into HTML pages is then sent back to the client.
Penso che ti stia riferendo ai cosiddetti spaghetti code degli anni '90, tuttavia l'approccio moderno è quello di utilizzare uno dei tanti framework MVC. Nel caso di PHP che significherebbe per esempio Zend Framework (ci sono numerose alternative).
Per quanto riguarda l'ASP, ti stai probabilmente riferendo al cosiddetto "ASP classico", che è obsoleto. Attualmente è ASP.NET, che può utilizzare qualsiasi linguaggio .NET (il C # è il più popolare) e, naturalmente, il framework .NET.
C e C ++ non sono in genere utilizzati per l'applicazione web. In tal caso, tali servizi vengono implementati come server standalone, come modulo per server Web o come FastCGI .
Perl può essere eseguito direttamente dal modulo web service usando mod_perl . C'è anche PSGI , che è fondamentalmente clone di WSGI .
Python è un linguaggio molto diffuso per le app Web. Può essere eseguito direttamente dal server web Apache tramite mod_python, tuttavia è obsoleto e non consigliato. Attualmente la via da percorrere con Python è tramite il modulo server WSGI . WSGI server implementato in Python (ad esempio CherryPy, WebPy) o usando lo stack web Python standalone (il modulo Web di Tornado e Twisted è ottimi esempi). E ovviamente, molto probabilmente userete WSGI framework MVC compatibile, Django è il più popolare (di nuovo, sono disponibili più alternative).
Ruby, ancora un linguaggio molto popolare per le applicazioni web. Meglio conosciuto per il framework web Ruby on Rails, che di nuovo è MVC. Puoi eseguire Ruby direttamente dal modulo server tramite mod_ruby o tramite FastCGI .
Servlet / JSP vengono eseguiti in server di applicazioni J2EE standalone, come JBoss o Tomcat. È più comunemente usato per aggiungere l'interfaccia web al sistema aziendale piuttosto che per creare app web indipendenti.
Il classico CGI (cioè il processo di generazione di uova su ogni richiesta) è diventato obsoleto molti anni fa. È stato sostituito da FastCGI (dove processo è di lunga durata, piuttosto che generato su ogni richiesta), moduli server, interfacce come WSGI e cloni e soluzioni stand-alone.
Anche il paradigma dell'elaborazione della richiesta si è evoluto, con CGI è stato elaborato per richiesta. Quindi era pool di processi (o pool di thread), ogni processo (thread) gestiva una richiesta alla volta. Tuttavia ora, l'approccio più moderno è che i server Web e i framework stand-alone utilizzino la programmazione basata sugli eventi.