Nei primi tempi del web, le persone hanno hackerato server Web utilizzando API non standard in qualsiasi lingua avessero a portata di mano. Allora, NCSA HTTPd era lo standard defacto, quindi per la maggior parte hai usato C, credo. Certamente, ogni prodotto server HTTP aveva la propria API C (Netscape aveva NSAPI , Microsoft ISAPI , ecc.)
Per alleviare questo problema, nel 1993 è stato sviluppato lo standard standard CGI (Common Gateway Interface), che consente un web server per interfacciarsi con un processo locale per gestire le richieste. Poiché i server Web sono stati eseguiti quasi esclusivamente su sistemi UNIX, l'interfaccia utilizza le variabili di ambiente per comunicare con il processo e ogni nuova richiesta viene gestita da un nuovo processo.
Poiché ora puoi utilizzare qualsiasi processo UNIX per rispondere a una richiesta HTTP, puoi utilizzare qualsiasi lingua che ti è piaciuta per i programmi CGI. Personalmente, ho iniziato a utilizzare gli script di shell in un primo momento (semplicemente inviando via email i contenuti di un modulo web), ma ho colto rapidamente Perl e l'emergente CGI.pm modulo . La performance per richiesta non ha avuto ancora un grande impatto sulle cose, al momento il web non era così occupato. Se avevi bisogno di un tempo di risposta veloce hai usato i file statici o una delle API C citate per interfacciarti direttamente con il server HTTP.
Java non è entrato nel mondo del computing fino al 1995, e inizialmente è stato destinato alle applet nel browser prima di diventare popolare come linguaggio lato server. A quel punto, iniziarono ad apparire server di applicazioni web dedicati, moduli di estensione come mod_perl e linguaggi di programmazione Web dedicati come PHP, ASP e ColdFusion. Ognuno di questi ha avuto il suo seguito, alcuni sopravvivono ancora oggi. Nessuno di loro era mai dominante o chiaramente "primo".