L'"obsoleto" -nessità di CGI è davvero solo un fattore se si stanno facendo siti grandi e complessi con molte visualizzazioni di pagina.
Molte persone spingono l'idea che CGI sia obsoleto in realtà non capiscono cosa sia CGI. Vi è un equivoco diffuso sul fatto che la CGI sia una tecnologia intrinsecamente basata sul Perl. Molte persone attaccano la CGI come un modo per riempire gli attacchi settici su Perl a sostegno di qualsiasi lingua supportino. Se vuoi essere un vero tecnico, devi capire le questioni fondamentali e fare una scelta basata sui fatti della situazione.
CGI è un'interfaccia con un server Web che consente di scrivere pagine interattive in qualsiasi lingua - even befunge. Quando un server riceve una richiesta per una pagina controllata da uno script CGI, il server esegue lo script e restituisce i risultati al richiedente.
Se il tuo linguaggio di programmazione richiede una VM, un interprete o un compilatore da caricare ogni volta che viene eseguito, allora questo tempo di avvio sarà richiesto ogni volta che si accede alla pagina.
Gli acceleratori CGI come FastCGI, mod_php, mod_perl e così via, mantengono un interprete/VM in memoria in ogni momento, possono mantenere le librerie caricate e persino cache bytecode dagli script per ridurre il sovraccarico di avvio dello script.
Se stai facendo un sito semplice, personale o per hobby, CGI andrà bene. Così sarà PHP.
Se il tuo sito necessita di una tecnologia più veloce, puoi passare a mod_perl, FastCGI o ad altre tecnologie di accelerazione CGI.
La lingua utilizzata deve essere determinata dagli strumenti che fornisce e dal modo in cui si adattano alle esigenze.
- Fare un elenco delle funzionalità necessarie.
- Fai una lista di demolitori di offerte.
- Ora controlla ciascuno dei tuoi set di strumenti possibili rispetto a questi due elenchi.
- Quale ne esce il migliore? Provalo.
- Fa schifo? Cancellalo dalla lista e torna al passaggio 4.
Inoltre, consiglio di non utilizzare befunge. Solo perché è possibile, non significa che dovresti usarlo.
Aggiornamento: Come mpeters sottolinea, mod_perl, mod_php, mod_ruby, et alia sono molto più di semplici acceleratori CGI; forniscono accesso all'API Apache. Agiscono come acceleratori CGI, ma possono fare molto, molto, molto altro.
FastCGI è un acceleratore CGI puro.
Aggiornamento 2: PHP e CGI non si escludono a vicenda. PHP can be installed as a CGI. PHP viene spesso utilizzato con FastCGI.
Invece di semplice CGI, dai un'occhiata a Catalyst. http://catalystframework.org –
@Brad Gilbert - Stai confondendo CGI.pm e CGI l'interfaccia. Catalyst può essere eseguito come CGI (l'overhead di avvio è un po 'ripido, ma potrebbe essere accettabile). – daotoad
La domanda è se ti forniscono un'interfaccia CGI per il webserver, CGI.pm o entrambi. La coincidenza di nominare significa che non possiamo dire - lo sai? – ijw