CGI (Common Gateway Interface)

botond küldte be 2018. 09. 26., sze – 21:10 időpontban

A Common Gateway Interface (CGI) egy protokollszabvány, amely többnyire web szervereken biztosítja a kapcsolatot a webkiszolgáló szoftver és a szerveren futtatható parancsfájlok között, amik segítségével a weboldalak dinamikusan állíthatóak elő. Ezeket a parancsfájlokat CGI szkripteknek, vagy szerver oldali szkripteknek is szokták nevezni. Ilyenek lehetnek például PHP, Perl, Python vagy C programozási nyelvekben megírt alkalmazások.

Amikor a kliens egy ilyen fájlt kér le a szerverről, például egy dinamikus webáruházba lép, akkor létrejön a CGI kapcsolat, a szerver lefuttatja a kért parancsfájlt majd annak a kimenetét visszaadja a kliensnek összeállított HTML formában, amit a böngésző megjelenít.

Minden webszerver futtat valamilyen HTTP kiszolgáló szoftvert, a leggyakrabban az Apache webkiszolgálót. Ennek a szoftvernek a feladata, hogy az internetről beérkező kérések alapján megkeresse a szerveren a megfelelő fájlokat és kiszolgálja azokat a kérő számára. Ezek a fájlok lehetnek statikus fájlok, mint például index.html, de lehetnek dinamikus fájlok is, mint például index.php. Ez utóbbi esetben a webkiszolgáló szoftver a CGI segítségével kapcsolódik az adott fájlt futtató feldolgozó környezethez – az index.php esetén a PHP feldolgozóhoz – ami lefuttatja a fájlt, majd a létrejött kimenetet átadja a webkiszolgálónak. Ezután a webkiszolgáló pedig legenerálja belőle a megfelelő tartalmat, amit visszaküld az ügyfél böngészőjébe.

A CGI szkriptek akár be is ágyazhatók kisebb kódok formájában a statikus fájlokba, így azok csak a weboldal megfelelő részeit állítják elő dinamikusan, míg az oldal többi része statikus marad.

Az internet gyors elterjedése következtében a felhasználók száma megsokszorozódott, ezért ez a szabvány elavulttá vált, mivel minden egyes CGI kérés egy-egy külön folyamatot (processzt) indított el a szerveren, ami idő és memóriaigényes művelet volt. Így ha egy weboldalt egyszerre sok látogató keresett fel, akkor a szerver könnyen túlterhelődött. Ezért idővel kifejlesztették a FastCGI szabványt, ami már több lekérést is tudott kezelni egy időben.

 

Felhasznált források:
Kapcsolódó tartalom: