Common Gateway Interface: Skirtumas tarp puslapio versijų

Ištrintas turinys Pridėtas turinys
Monas (aptarimas | indėlis)
Nėra keitimo santraukos
(Jokio skirtumo)

14:52, 11 birželio 2005 versija

CGI (Common Gateway Interface) — protokolas, kaip turi bendrauti WWW serveris ir jame vykdomos programos, skirtos iš naršyklės gautos informacijos apdorojimui ir/arba dinaminių puslapių generavimui.

CGI buvo išrastas 1993 ir realizuotas viename iš pirmųjų WWW serverių — NCSA HTTPd. Iš naršyklės gauta informacija į apdorojimo programą perduodama panaudojant aplinkos kintamuosius (išskyrus HTTP POST metodu pateikiamą informaciją, kuri pateikiama į standartinį įvedimą). Kiekvienai užklausai apdoroti kuriamas naujas procesas.

CGI buvo patogus tuo, kad:

  • konkretaus taikymo logikos nereikėjo tiesiogiai integruoti į WWW serverio išeities kodą – todėl dėl kiekvieno pakeitimo nereikėdavo perkompiliuoti ir perstartuoti viso WWW serverio;
  • taikymo programos gali būti parašytos bet kokia kalba, įskaitant skriptų rašymo kalbas; būtent skriptų kalbomis (perl, php, sh) buvo parašyta didžioji dalis CGI programų;
  • dauguma WWW serverio realizacijų moka dirbti šiuo protokolu, todėl CGI programas galima naudoti su skirtingomis WWW serverio realizacijomis;
  • taikymo programos galėjo būti vykdomos kitomis teisėmis, nei pats WWW serveris, dėl to pagerinant visos sistemos saugumą.

CGI trūkumai:

  • greitaveika — dėl to, kad kiekviena užklausa apdorojama atskiru procesu, serverio resursai yra išnaudojami pakankamai neefektyviai.

Greitaveikos problema buvo sprendžiama dviem keliais:

  • integruojant skriptų kalbų interpretatorius į WWW serverius (mod_php, mod_perl);
  • taikymo programą paleidžiant kaip servisą, o užklausų duomenis ir sugeneruotus puslapius perduodant tarp WWW serverio ir CGI programos per socket'us (FastCGI).