CGI-systemet er et resultat av diskusjoner på epostlister mellom Rob McCool, John Franks, Ari Luotonen, George Phillips og Tony Sanders i 1993. De tidlige spesifikasjonene, og en referanseimplementasjon, ble laget av Rob McCool, når han arbeidet på NCSA. Implementasjonen ble gjort på en NCSA HTTPd nettjener ved å bruke variabler til å lagre parametre som ble sendt fra nettjenerens ptogramkjøringsdel, og gitt til CGI-systemet som et uavhengig program.
Wikieneene er eksempler på GCI-program. Nettleseren spør etter informasjon, tjeneren vil gi informasjon (hvis den har), gjøre denne informasjonen om til html-kode og sende resultatet tilbake til nettleseren - eller sende en side som ber brukeren om å lage resultatet. Alle wiki-operasjoner styres av dette ene programmet.
Fra nettjenerens synspunkt virker CGI på den måten at visse adresser (for eksempel
er definert som adresser CGI-programmet skal lage. Når tjeneren mottar en forespørsel til en passende nettadresse, med data som klienten sendte, blir CGI-programmet kjørt. Tjeneren gir passende hode-del til resultatet, som sendes tilbake til klienten.
Dette er en teknologi som er veldig tung for nettjeneren, fordi det vanligvis bruker en egen, ny kopi av CGI-programmet i hver eneste forespørsel klientene gjør. Dette har inspirert mer effektive teknologier som Perl, ASP, JSP og PHP som lar script-tolkere integreres inni nett-tjenere som moduler. Dermed unngår man å hele tiden måtte laste inn og starte tolkeprogram.