(Risponde Alan Flavell <flavell+www@a5.ph.gla.ac.uk> ...)
La Common Gateway Interface (CGI) specifica un'interfaccia software tra un
programma ("script CGI") e un server web (HTTPD). Essa non è specifica
del Perl ed ha le proprie FAQ, tutorial e un gruppo usenet,
comp.infosystems.www.authoring.cgi
La specifica CGI originale è descritta su un RFC informativo:
http://www.ietf.org/rfc/rfc3875
Altri documenti rilevanti sono elencati su:
http://www.perl.org/CGI_MetaFAQ.html
Queste FAQ Perl toccano alcune problematiche CGI in maniera molto selettiva.
Ad ogni modo, si suggerisce caldamente ai programmatori Perl l'uso del modulo
CGI.pm che si prenda cura dei particolari al loro posto.
La similitudine tra gli header di risposta CGI (definiti nella specifica CGI)
e gli header di risposta HTTP (definiti nella specifica HTTP, RFC2616)
è intenzionale ma può talvolta confondere.
La specifica CGI definisce due tipi di script: il "Parsed Header" script, e
il "Non Parsed Header" (NPH) script. Controlla la documentazione del
vostro server per vedere quale di esse viene supportata. Gli script "Parsed
Header" sono più semplici sotto vari aspetti. La specifica CGI permette una
qualsiasi delle usuali rappresentazioni del newline nella risposta CGI
(è compito del server creare un'accurata risposta HTTP basata su di
essa). Così "\n" scritto in modalità testuale è
tecnicamente corretto e raccomandato. Gli script NPH sono più
complessi: essi devono emettere un completo ed accurato insieme di
intestazioni HTTP di risposta di transazione; la specifica HTTP richiede
che i record siano terminati con un carriage-return e un line-feed,
cioè ASCII \015\012 scritto in binario.
L'uso di CGI.pm fornisce una piattaforma indipendente eccellente, includendo
i sistemi EBCDIC. CGI.pm seleziona una rappresentazione appropriata di
newline ($CGI::CRLF) e imposta binmode in maniera appropriata.
|