Links ::  | DEV web management system | Katalóg | Webhosting | Recepty
  
 Index | Registrácia | Hľadať | Galéria | BoardNeprihlásený užívateľ  //Sobota, 25. Novembra 2017 
Navigation
Index
Top 10 autorov
Top 20 článkov
Hľadať
Galéria

Zones
Asp.(NET)
C/C++
Flash
Grafika+Design
Hardware
Hry
Html/Css/Xml
Java
Linux
Networks
Operačný systém
Pascal/Delphi
PHP
Security
Software
SQL
Visual Basic
Wap/Wml
Windows
Zóna iné

Links
Script index Interval.cz Pc.sk Regedit.sk TipyaTriky.sk Builder.cz Asp.cz Živě.sk Zoznam.sk Code.box.sk Root.cz Quant&Financial

Odkazy

Sessions
Stránky Developer.sk si práve číta 469 čitateľov, z toho je 0 zaregistrovaných

BackEnd
Odkazy na nové články je možné preberať pomocou backend.php

kuk

    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ť.

Content-length Content-type Expires Location Pragma Status Refresh Set-Cookie Kompletný zoznam http hlavičiek

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.


Autor : Developer, čítané 3963x, komentárov: 0
Hodnotenie :    |  Utorok, 11. Marca 2003

Pridať nový komentár/Komentáre
Vaše hodnotenie :   horšie  lepšie
Login
Login:
Heslo:

Hľadať
 
v článkoch
v diskusiach
v komentároch

Top read
PHP Coder

Priklady v C. 1.čast.

DEV web management system

Php a bezpečnosť skriptov

Autorun CD

Top discuss
Jednoduchý web formulár (ASP.NET)

Delphi seriál: (1.časť)

Velmi rychla grafika v Pascale

DEV web management system

Naša ikona
Páčia sa Vám naše stránky ? Ak áno, podporte nás prosím a umiestnite si na svoju stránku našu ikonku:





Copyright (c) Developer.sk, All rights reserved.
Powered by DEV web management system