(Common Gateway Interface)
Szerveroldali alkalmazások és webszerverek közötti adatcsere folyamatát rögzítő szabvány.
Szabványos [webszerver]?eken futtatható [script]? (szoftveralkalmazás), mely lehetővé teszi az interaktív alkalmazások, változó tartalmú vagy autamatikusan generált (úgynevezett dinamikus) HTML oldalak létrehozását.
A webprogramozók számára interaktív alkalmazásokat tesz lehetővé (HTMLűrlapok kiértékelése, statisztikák készítése, stb.).
Előnye, hogy a külső segédprogram ugyan a felhasználó böngészője indítja, nem a azon, hanem a webszerveren fut le, így a program a felhasználó számára láthatatlan marad (nem úgy, mint például a JavaScript).
Hátránya is ebből adódik, hiszen a külső programok futtatása a [webszerver]? számára nagy erőforrás többletet igényel, így jelentősen csökkenti annak teljesítményét. Ezen kívül sok biztonsági rést találtak rajta.
Épp ezért a cgi futtatását a általában a webszerver gazdájának külön engedélyeznie kell. A legtöbb szolgáltató saját cgi scriptek feltöltését és futtatását nem engedélyezi.
Cgi scriptek létrehozására leggyakrabban használt programnyelvek:
- Perl
- C
- C++
- Shell
- Pascal
- VBscript
- Olyan adatbáziskezelő programokban írt scriptek is fordíthatók cgi-re, mint a Clipper, a Delphi, vagy az Oracle.
A futtatás feltétele, hogy az adott szerver ismerje azt a programnyelvet, melyben a cgi íródott!
A rendszer akkor tudja végrehajtani a cgi-ben tárolt utasításokat, ha a webkiszolgáló a felhasználó böngészőjétől olyan URL-cím meghívását kapja, amely tartalmazza a program pontos helyét, nevét, és az általa megkövetelt paramétert.
A program kiterjesztése lehet többek között .c, .pl, .cgi, vagy .exe, Windows alapú webszerver esetén .dll.