Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Žiadosť klienta: Užívateľ interaguje s webovou stránkou (napr. Vyplní formulár, klikne na odkaz), ktorý spúšťa požiadavku na webový server. Táto požiadavka často obsahuje parametre alebo údaje, ktoré skript musí spracovať.
2. server prijíma žiadosť: Webový server prijíma žiadosť a identifikuje, že sa musí spracovať skriptom CGI. Toto sa zvyčajne určuje pomocou URL (napr. Extension `.cgi`) alebo konfigurácia servera.
3. Server vykonáva skript: Server vyvolá skript CGI. Zahŕňa to vytvorenie nového procesu pre spustenie skriptu, ktorý zaisťuje izoláciu bezpečnosti medzi skriptom a samotným serverom. Je to rozhodujúce, pretože ohrozený skript CGI by mohol potenciálne ovplyvniť celý server.
4. PREPONÁRAŤ SPRÁVA Žiadosť: Skript prijíma vstup zo servera vrátane parametrov požiadavky klienta (napríklad dáta formy), premenných prostredia (napríklad adresa IP používateľa) a štandardného vstupu. Potom tieto informácie spracúva a generuje výstup.
5. skript odosiela odpoveď: Skript odošle svoj výstup späť na webový server prostredníctvom štandardného výstupu (stdout) a štandardnej chyby (stderr). Výstup zvyčajne obsahuje hlavičky HTTP (stavový kód, typ obsahu atď.) A skutočný obsah, ktorý sa má zobraziť v prehliadači (napr. HTML, obrázky, text).
6. Server odosiela odpoveď klientovi: Webový server prijíma výstup zo skriptu, skontroluje hlavičky HTTP a odošle odpoveď späť do webového prehľadávača klienta. Prehliadač potom vykresľuje prijatý obsah.
Kľúčové aspekty a obmedzenia:
* Zabezpečenie: Pretože skripty CGI fungujú ako samostatné procesy, sú nevyhnutné starostlivé bezpečnostné opatrenia. Akékoľvek zraniteľné miesta v skripte CGI by sa mohli využiť.
* Výkon: Vytvorenie nového procesu pre každú žiadosť môže byť náročné na zdroje, najmä pri silnom zaťažení. To vedie k pomalšiemu výkonu v porovnaní s modernejšími prístupmi.
* nezávislosť jazyka: Skripty CGI môžu byť napísané v ľubovoľnom programovacom jazyku, ktorý môže vytvoriť požadovaný výstup. Táto flexibilita je významnou výhodou.
* Premenné prostredia: Webový server poskytuje sadu premenných prostredia do skriptu CGI a ponúka dôležité kontextové informácie.
* hlavičky: Skript je zodpovedný za výstup správne hlavičky HTTP na označenie typu obsahu (napr. `Text/HTML`,` Image/jpeg`).
Moderné alternatívy:
Zatiaľ čo CGI je stále funkčná, do značnej miery ho nahradili efektívnejšie a bezpečnejšie technológie, napríklad:
* fastCgi: Zlepšuje výkon udržiavaním procesov skriptov nažive, vyhýba sa režijnej budove vytvárania procesu pre každú žiadosť.
* wsgi (python): Štandardizované rozhranie medzi webovými aplikáciami Python a webovými servermi.
* CGI alternatívy pre iné jazyky: Väčšina moderných webových rámcov ponúka vstavané mechanizmy na efektívnejšie zaobchádzanie s požiadavkami, ako sa spoliehajú priamo na CGI.
Stručne povedané, CGI poskytuje zásadný spôsob, ako webové servery interagovať s externými programami, ale trpí výkonnostnými a bezpečnostnými výzvami, ktoré viedli k poklesu v prospech modernejších prístupov. Pochopenie CGI je stále užitočné pre pochopenie histórie a základných zásad vývoja webových aplikácií.