Peremennye okruzheniya | Opcii komandnoj stroki | Standartnyj vvod | Standartnyj vyvod |
SHlyuz -- eto CGI skript, kotoryj ispol'zuetsya dlya obmena dannymi s drugimi informacionnymi resursami Internet ili prilozheniyami-demonami. Obychnaya CGI programma zapuskaetsya serverom HTTP dlya vypolneniya nekotoroj raboty, vozvrashchaet rezul'taty serveru i zavershaet svoe vypolnenie. SHlyuz vypolnyaetsya tochno takzhe, tol'ko, fakticheski, on iniciiruet vzaimodejstvie v kachestve klienta s tret'ej programmoj. Esli eta tret'ya programma yavlyaetsya servisom Internet, naprimer, server Gopher, to shlyuz stanovitsya klientom Gopher, kotoryj posylaet zapros po portu Gopher, a posle polucheniya otveta peresylaet ego serveru HTTP. Analogichno proishodit vzaimodejstvie s serverami raspredelennyh baz dannyh, naprimer Oracle. Na risunke predstavlena shema vzaimodejstviya servera HTTP s serverom Gopher cherez shlyuzovuyu programmu.
Sobstvenno specifikaciya CGI opisyvaet chetyre nabora mehanizmov obmena dannymi:
Opcii komandnoj stroki. Komandnaya stroka ispol'zuetsya tol'ko pri zaprosah tipa ISINDEX. Pri HTML FORMS ili lyubyh drugih zaprosah neopredelennogo tipa komandnaya stroka ne ispol'zuetsya. Esli server opredelil, chto k skriptu obrashchayutsya cherez ISINDEX dokument, to poiskovyj kriterij vydelyaetsya iz URL i preobrazuetsya v parametry komandnoj stroki. Pri etom znakom razdeleniya parametrom yavlyaetsya simvol "+". Tip zaprosa opredelyaetsya po nalichiyu ili otsutstviyu simvola "=" v zaprose. Esli etot simvol est', to zapros ne yavlyaetsya zaprosom ISINDEX, esli simvola net, to zapros prinadlezhit k tipu ISINDEX. Parametry, vydelennye iz zaprosa, pomeshchayutsya v argv[1...]. Pri etom posle iz vydeleniya proishodit preobrazovanie vseh shestnadcaterichnyh simvolov v ih ASCII kody. Esli chislo parametrov prevyshaet ogranicheniya, ustanovlennye v komandnom yazyke, naprimer v shell, to formirovaniya komandnoj stroki ne proishodit i dannye peredayutsya tol'ko cherez QUERY_STRING. Voobshche govorya, sleduet zaranee podumat' ob ob®eme dannyh, peredavaemom skriptu, i vybrat' sootvetstvuyushchij metod dostupa. Razmer peremennyh okruzheniya tozhe ne bezgranichen, i esli neobhodimo peredavat' mnogo dannyh, to luchshe srazu vybrat' metod POST, t.e. peredachu dannyh cherez standartnyj vvod.