A CGI (Common Gateway Interface) egy szabványosított protokoll, amely lehetővé teszi a webes szerverek számára, hogy dinamikus tartalmat szolgáltassanak különböző programok futtatásával. Alapvetően egy interfészt biztosít a szerveren futó alkalmazások és a kliens (például egy böngésző) között.

Mire jó a CGI alkalmazás a szerveren?

  1. Dinamikus tartalom szolgáltatása: A CGI segítségével a szerver olyan dinamikus weboldalakat tud létrehozni, amelyek különböző adatokat mutatnak a felhasználó kérésére, például űrlapok kitöltése után. A CGI programok választható programozási nyelvekben írhatók, mint például Perl, Python, PHP, vagy akár C.

  2. Adatfeldolgozás: CGI alkalmazások képesek űrlapadatok feldolgozására. Például, amikor egy felhasználó kitölt egy webes űrlapot, a beküldött adatokat a CGI alkalmazás dolgozza fel, majd a választ visszaküldi a böngészőnek.

  3. Adatbázis-kapcsolat: CGI programok kapcsolódhatnak adatbázisokhoz, és lehetővé teszik az adatbázisban tárolt adatok lekérését és megjelenítését a felhasználó számára.

  4. Platformfüggetlenség: Mivel a CGI egy szabványos interfész, bármely platformon használható, amely támogatja a webes kiszolgálást (például Apache, Nginx), és támogatja a megfelelő programozási nyelveket.

  5. Eseménykezelés: CGI segítségével olyan alkalmazásokat is létre lehet hozni, amelyek valós idejű eseményeket kezelnek, például chat alkalmazásokat vagy adatfolyamok frissítését.

Hogyan működik?

Amikor egy felhasználó egy dinamikus oldalra vonatkozó kérést küld, a szerver elindít egy CGI programot, amely a kért adatokat feldolgozza, és eredményül HTML-kódot vagy más adatokat küld vissza a felhasználónak. Például, amikor egy webes űrlapot elküldesz, a CGI feldolgozza az adatokat, majd eredményként válaszoldalt hoz létre.

Előnyök:

  • Optimális választás lehet közepes forgalmú weboldalakhoz, valamint osztott webszerverhez.
  • Lehetőség van a PHP processzt a felhasználó nevében futtatni, így monitorozva és limitálva erőforrás használatát
  • Lehetőség van vhostonként külön php.ini használatára is
  • Nem jelentkezik a fájl jogokkal kapcsolatos probléma. A PHP minden fájlt tud írni, olvasni

Hátrányok:

  • Teljesítményproblémák: Mivel a CGI programok minden egyes kéréshez külön-külön elindulnak (párhuzamosan), ez nagy terhelést jelenthet a szerver számára.
  • Biztonsági kovkázatok: Ha nem megfelelően írják meg, a CGI alkalmazások biztonsági rést jelenthetnek, például az input sanitization hiánya sebezhetőséget okozhat.
  • Nem lehet PHP szabályokat beállítani a .htaccess fájlban
  • Kevésbé biztonságos mint a SuPHP
  • Nagy számú párhuzamos PHP lekérések nagy terhelést okozhatnak a szerveren.