Hlavná stránka · Diskusné Fórum · Pracovné príležitosti · Zoznam

 Main Menu
o Hlavná stránka
o Zoznam tém
o Zoznam
o Odporučte nás
o Užívatelia
o Vaše konto
o Pridaj článok
o Štatistiky
o Top 10

 Reklama


 Developer Zone's
o Internet
o Tools
o Linux
o CGI Zone
o ASP Zone
o ASP.net
o PHP Zone
o CSS Zone
o JavaScript
o MySQL
o WAP / WML
o WML / WMLScript
o XML / XHTML
o Tipy a triky
o Best of web
o WebServers
o WebDesign
o Grafika

 Servis
o Vyhľadávanie
o Fórum
o Workoffice
o Zoznam článkov
o Reklama
o Pridaj článok
o Pridaj novinku

Napíšte nám
Homepage Do favoritov

 LinkExpres
Interval.cz · Pc.sk
Builder.cz · Mobilmania
PCSvet.cz · Asp.cz
Webdnes · Živě.sk
Zoznam.sk · Atlas.sk
Inzine.sk · PHP.sk
Agent.sk · Lupa.cz
Code.box.sk · Root.cz
Pixel32 · Grafika.cz

 forum.developer.sk
o Fórum ::
o Markup languages
o Scriptové jazyky
o CGI
o PHP/MySQL
o Perl
o Grafika
o Webservery
o HTML Editory
o Browsery
o Bookmarx
o ASP
o Vytvor tému ::

 Pracovné príležitosti
o Ponúkate prácu?
o Hľadáte prácu?

 Autori developer.sk
o Martin Nemeček
o Sväťo Straka
o Jany Masaryk
o Jozef Murín

 
CGI / Perl [ 05. November 1999] - Svato_Straka
Výstup CGI skriptu - 2. časť CGI
Možno sa vám bude zdať, že postupujeme od konca k začiatku, keď sme si ešte nespomenuli nič o vstupe do CGI skriptu a už sa vrháme na výstup. Mám však dva dôvody, prečo takto postupujem. Prvý z nich je ten, že CGI skript nemusí vždy dostať na svoj vstup dáta. Druhý je tiež vcelku prozaický - darmo budem vedieť ako skriptu dáta odovzdať, keď neviem ako ich spracované vrátiť užívateľovi.



Ako som už spomenul v predchádzajúcich dieloch, výstup skriptu pozostáva z dvoch častí: http hlavičky a samotných dát. Tvorba dát je zrejme každému jasná, pozrime sa teda na http hlavičky.

HTTP hlavičky

CGI skript (lepšie povedané jeho autor) sa môže rozhodnúť, či v CGI skripte vráti kompletnú http hlavičku, alebo len jej časť. Väčšinou samozrejme programátori volia druhú možnosť - na výstup svojho CGI skriptu posielajú len tie najnutnejšie riadky hlavičky a jej dotvorenie prenechávajú web servru. Uveďme si teraz taký príklad:

print "Content-type: text/htmlnn";
print <<Koniec_Html;
<HTML>
<HEAD>
<TITLE>Jednoduchý virtuálny HTML dokument</TITLE>
</HEAD>
<BODY>
<H1>Virtuálny HTML dokument</H1>
<HR>
<P>
Tento dokument je výstupom CGI skriptu $ENV{SCRIPT_NAME}.
</BODY>
</HTML>
Koniec_Html

exit(0);

Myslím že tento skript netreba veľmi vysvetlovať čo sa Perlu týka, spomenul by som však jednu črtu ktorá sa tu objavuje: vkladanie premenných. Pokým do textu, ktorý má byť výstupom skriptu vložíte názov premennej a táto premenná je definovaná, Perl automaticky doplní na dané miesto jej hodnotu. V našom prípade teda bude $ENV{SCRIPT_NAME} zamenené na skutočné meno súboru so skriptom.

Riadok print "Content-type: text/htmlnn"; v našom skripte je práve tou časťou kódu, ktorá generuje časť http hlavičky. Konkrétne tu je povedané, že MIME typ výstupných dát bude text/html. Samozrejme že MIME typ výstupných dát nie je jedinou vecou, ktorú môžete v http hlavičke určiť. V nasledujúcej tabuľke sú vymenované typy hlavičiek, ktoré môže CGI skript vrátiť.

Pri tvorbe http hlavičiek vo vašich skriptoch si vždy zapamätajte 2 zásady:
  • Blok hlavičiek musí byť oddelený od dát prázdnym riadkom
  • Riadky hlavičky nemusia dodržiavať žiadne zvláštne poradie

Samozrejme ako som už spomenul, nemusíte nechávať dotvorenie hlavičky na server ale môžete ju v CGI skripte vytvoriť kompletnú. Takto môžete pri navracaní dokumentu klientovi obísť jeden z článkov reťazca ktorým váš skript prechádza. Treba však pamätať na skutočnosť, že prípadnú chybu v hlavičke už nemá možnosť server opraviť.

Ako server zistí, že výstup skriptu obsahuje kompletnú http hlavičku? Servery typu NCSA a CERN (spadá sem aj najpoužívanejší web server - Apache) to spoznajú podľa názvu CGI skriptu, ktorého meno musí začínať reťazcom "nph-", čo znamená Non-parsed header ("nerozobraná" hlavička). Výstup takéhoto skriptu ide priamo ku klientovi bez zapojenia servera.

Možno sa pýtate, aký to môže mať význam. Predstavte si situáciu, keď chcete na strane klienta niečo postupne vypisovať po určitej dobe (napr. spraviť čosi ako odpočítavanie od 50 po jednej sekunde tak, aby každú sekundu skript vypísal hodnotu, ktorá ostáva k nule). Kebyže na toto použijete nekompletnú hlavičku, celý skript by prebehol na servri a výsledok by sa zobrazil až po vykonaní skriptu. Ak však použijete kompletnú hlavičku, budete vidieť ako skript vypisuje jednotlivé hodnoty.

Myslím že pre dnešok by stačilo. Nabudúce si povieme niečo viac o http hlavičkách, presmerovaniach servra a návratových kódoch http požiadaviek.

 
 Príslušné odkazy k téme
Viac o téme: CGI / Perl | Iné články od: Admin | Pošli komentár | Stránka vhodná na tlač width=15 height=11  Pošli tento článok priateľovi, známemu width=15 height=11


Najčítanejšie články CGI / Perl:
Čo je to CGI? - Úvod do CGI

Ďalšie články v rubrike CGI / Perl:

 

"Výstup CGI skriptu - 2. časť CGI" | Login / vytvor konto | 0 Komentárov
Prah
Za obsah komentárov je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.



Autorské práva:   ©1999 - 2001 Developer Zone [developer@developer.sk]

Všetky články sú vlastníctvom autorov Developer Zone. Všetky práva vyhradené. Stránky Developer.sk sú vytvorené pomocou PHP-Nuke.
Odkazy na nové články je možné preberať pomocou:Backend.php.