.CGI

File CGI

Common Gateway Interface Script
Fai una domanda
RISPOSTA RAPIDA

Un file CGI è uno script Common Gateway Interface - un programma che un server web esegue per generare una pagina dinamicamente (gestori di moduli, contatori, vecchi guestbook). Di solito si tratta di codice sorgente in formato testo semplice, il più delle volte Perl o Python, quindi è possibile aprirlo in qualsiasi editor di codice per leggerlo o modificarlo. Non viene eseguito nel browser: per eseguirlo è necessario inserirlo nella directory /cgi-bin/ del server, renderlo eseguibile e il server lo avvierà quando un browser richiederà quell'URL.

Sviluppatore: NCSA / CGI community (RFC 3875 documents the interface) Categoria: File eseguibili (exe) Standard aperto MIME: application/x-httpd-cgi
SI APRE SU Windows macOS Linux
Correlati: .APK · .EXE · .VBS · .JAR

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Jul 10, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file CGI?

L'estensione .cgi sta per Common Gateway Interface - un approccio standard per generare applicazioni web e contenuti dinamici sulle pagine web. L'estensione .cgi, quando applicata su un server web, fornisce un'interfaccia tra i programmi eseguibili e il server web che genera il contenuto del sito. Tutti questi programmi sono chiamati CGI o script CGI.

Questi file sono generalmente scritti utilizzando un linguaggio di scripting come Perl, Python o shell script, sebbene un file .cgi possa ugualmente essere un binario compilato (ad esempio, un programma C). L'estensione stessa non dice nulla sul linguaggio contenuto all'interno - la riga shebang all'inizio dello script, come #!/usr/bin/perl o #!/usr/bin/python3, indica al server web quale interprete invocare.

Uno script CGI viene eseguito sul server una volta per ogni richiesta HTTP in entrata. Legge i dati della richiesta dalle variabili d'ambiente (QUERY_STRING, REQUEST_METHOD, CONTENT_TYPE) e accetta i dati del corpo POST tramite stdin, quindi scrive una risposta HTTP - intestazioni seguite dal contenuto del corpo - direttamente su stdout. Per funzionare, il file deve essere collocato in una directory abilitata ai CGI (tradizionalmente /cgi-bin/) e avere il permesso di esecuzione impostato sul server.

.cgi è uno standard di interfaccia, non un linguaggio di programmazione. Diversi altri formati di file condividono l'estensione .cgi: gli script .pl, .py o .sh vengono spesso rinominati in .cgi in modo che il server web li instradi attraverso il meccanismo CGI. Poiché il CGI genera un nuovo processo per ogni richiesta, risulta lento su larga scala ed è stato ampiamente sostituito da FastCGI, mod_php, WSGI e moderni application server - sebbene rimanga supportato sulla maggior parte dei server web odierni.

Sicurezza e incolumità

RISCHIO: MEDIUM

Leggere un .cgi in un editor di testo è sicuro - non verrà eseguito semplicemente aprendolo. Il rischio risiede nell'ESECUZIONE su un server: gli script CGI girano con i privilegi del server e storicamente rappresentano una superficie di vulnerabilità web importante (il bug Shellshock del 2014 è stato sfruttato ampiamente tramite script shell CGI; i CGI scritti male consentono command injection, path traversal ed esecuzione di codice arbitrario). Non distribuire mai un .cgi scaricato che non comprendi, mantieni aggiornati gli interpreti e il server, limita i permessi di /cgi-bin/ e preferisci alternative come FastCGI o application server per i nuovi lavori. Tratta i sorgenti CGI sconosciuti come codice non attendibile da revisionare prima dell'esecuzione.

Dettagli del formato

in sintesi
NOME COMPLETOCommon Gateway Interface Scriptanche noto come CGI script, CGI program
SVILUPPATORENCSA / CGI community (RFC 3875 documents the interface)dal 1993 (NCSA HTTPd); formalized as CGI/1.1 in RFC 3875 (2004)
TIPO MIMEapplication/x-httpd-cgi
TIPOScript eseguibile lato server (solitamente sorgente in testo semplice; a volte un binario compilato)
STANDARDAperto · royalty-free
Questa estensione è usata anche da…
  • EToys / dati app di nicchia che usano .cgi - Alcune applicazioni non correlate hanno riutilizzato .cgi per i propri file di dati; su un server web un .cgi è quasi sempre uno script gateway.

Programmi che aprono file CGI

Windows3 apps
Notepad Open-source Apri il .cgi per leggere/modificare il sorgente con evidenziazione della sintassi (Perl/Python/shell). Lo strumento giusto per ispezionare o modificare uno script.
Visual Studio Code Gratuito Apri il .cgi per l'editing completo con estensioni di linguaggio, linting e Git; l'editor moderno per gli script web.
Apache HTTP Server (to run it) Open-source Per ESEGUIRE un CGI: inseriscilo in una directory abilitata ai CGI (mod_cgi, /cgi-bin/), assicurati che l'interprete sia installato e che il file sia eseguibile, quindi richiedi il suo URL.
macOS2 apps
BBEdit Freemium Apri il .cgi per leggere/modificare il sorgente su macOS.
Visual Studio Code Gratuito Apri il .cgi per l'editing completo con estensioni di linguaggio, linting e Git; l'editor moderno per gli script web.
Linux2 apps
Any text editor (gedit, Vim) Open-source Apri il .cgi per leggere/modificare il codice sorgente dello script.
The interpreter / web server Open-source Eseguilo direttamente con il suo interprete (perl script.cgi) per i test, oppure servilo tramite Apache mod_cgi / un server compatibile con CGI. Rendilo eseguibile con chmod +x.

Dettagli tecnici

specifiche approfondite
Tipo MIMEapplication/x-httpd-cgi
Tipi MIME alternativitext/plain, application/octet-stream
Codifica del fileTesto semplice (ASCII/UTF-8) per gli script; binario nativo per gli eseguibili compilati
Firma del fileNessun magic byte fisso - gli script testuali iniziano con una riga shebang (#!/usr/bin/perl, #!/usr/bin/python3, #!/bin/sh, ecc.); i binari CGI compilati portano l'intestazione eseguibile della piattaforma (ELF su Linux, MZ su Windows)
Modello di esecuzioneIl server web esegue il fork di un nuovo processo del sistema operativo per ogni richiesta HTTP per eseguire lo script o il binario; il processo termina dopo l'invio della risposta
Meccanismo di inputDati della richiesta consegnati tramite variabili d'ambiente (QUERY_STRING, REQUEST_METHOD, CONTENT_TYPE, intestazioni HTTP_*); corpo POST passato tramite stdin
Meccanismo di outputLo script scrive le intestazioni di risposta HTTP (righe Nome: valore) seguite da una riga vuota e dal corpo della risposta direttamente su stdout
Distribuzione richiestaIl file deve risiedere in una directory abilitata ai CGI (convenzionalmente /cgi-bin/) con il bit di esecuzione impostato; l'utente del server web necessita dei permessi di lettura ed esecuzione
Linguaggi di scripting tipiciPerl, Python, Bash/shell, Ruby, C (compilato in un binario nativo)
Dimensione tipica del file1 KB - 100 KB per gli script di testo; maggiore per i binari compilati
CompressioneNessuna all'interno del file stesso; il corpo della risposta HTTP può essere compresso separatamente tramite gzip dallo script o dal server
Supporto piattaformaLinux, Unix, macOS, Windows - qualsiasi sistema operativo che esegua un server web compatibile con CGI
Server web comuniApache HTTP Server, Nginx (tramite wrapper FastCGI), lighttpd, Microsoft IIS
Caratteristica prestazionaleLento su larga scala - ogni richiesta genera e distrugge un nuovo processo; sostituito da FastCGI, WSGI e ASGI per implementazioni ad alto traffico
Considerazioni sulla sicurezzaIl sorgente dello script è leggibile su disco; proteggere con permessi file rigorosi ed evitare di esporre la directory CGI tramite un URL diretto al di fuori del percorso /cgi-bin/ designato
Rilasciato1993 (NCSA HTTPd); formalized as CGI/1.1 in RFC 3875 (2004)
Ultima versioneCGI/1.1 (RFC 3875, October 2004)
Standard apertoSì · royalty-free
Specificawww.rfc-editor.org

Conversioni CGI

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file CGI. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file CGI.

Domande frequenti

Cos'è un file .cgi?
Uno script Common Gateway Interface - un programma che un server web esegue per generare una pagina dinamicamente (moduli, contatori, vecchi guestbook). Di solito è un sorgente in testo semplice (spesso Perl o Python) e viene eseguito sul server, non nel browser.
Come si apre un file .cgi?
Per leggerlo o modificarlo, aprilo in un editor di codice (Notepad++, VS Code, BBEdit) - tipicamente è un sorgente testuale. Per ESEGUIRLO, inseriscilo nella cartella /cgi-bin/ del server, rendilo eseguibile e richiedi il suo URL; i CGI non si avviano con un doppio clic.
Perché il mio browser mostra il codice CGI invece di eseguirlo?
Il server non è configurato per eseguire CGI in quella posizione: la gestione CGI (mod_cgi) è disattivata, la directory non è abilitata ai CGI, il file manca del permesso di esecuzione o lo shebang/interprete è errato. Spostalo in /cgi-bin/ e correggi i permessi.
In che linguaggio è scritto un .cgi?
L'estensione non lo specifica - controlla la prima riga. Uno shebang come #!/usr/bin/perl, #!/usr/bin/python3 o #!/bin/sh indica l'interprete. Alcuni CGI sono binari C compilati invece di sorgenti leggibili.
Il CGI è ancora usato?
Funziona ancora ed è supportato, ma è considerato legacy: avviare un processo per richiesta è lento, quindi la maggior parte dei siti è passata a FastCGI, mod_php, WSGI/Rack e framework moderni. Vedrai ancora .cgi in vecchi script e in alcuni pannelli di hosting.
I file .cgi sono pericolosi?
Aprirne uno in un editor è sicuro. Eseguire un CGI non attendibile su un server è rischioso - i CGI girano con i privilegi del server e hanno una storia di gravi falle (es. Shellshock). Esamina ogni CGI scaricato prima di distribuirlo e mantieni il server aggiornato.

Riferimenti

1RFC 3875 - The Common Gateway Interface (CGI) Version 1.1www.rfc-editor.org
2Wikipedia - Common Gateway Interfaceen.wikipedia.org

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.DATProgram Data File (generic)
4.JPGJPEG Image
5.EXEWindows Executable (Portable Executable)
6.RPMSGRestricted Permission Message
7.ICSiCalendar data file
8.PARTPartial Download File
9.JSONJavaScript Object Notation file
10.BINCD/DVD Disc Image (BIN/CUE)

Estensioni correlate

.APKAndroid Package
.EXEWindows Executable (Portable Executable)
.VBSVBScript file (Visual Basic Script)
.JARJava Archive
.EX4MetaTrader 4 Compiled Program (Expert Advisor / Indicator / Script)
.APPXMicrosoft Windows App Package (AppX)

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z