Next: Környezeti változók Up: CGI és a dinamikus lapok Previous: CGI és a dinamikus lapok   Tartalomjegyzék


1.4.1        A Web-szerver válasza

A Web-szerver minden egyes HTTP kérésre egy HTTP választ ad. Ez a válasz úgy alakul ki, hogy

·         A szerver fog egy fájlt, amelyik megfelel a HTTP kérésnek, és ennek tartalmát küldi vissza,

·         vagy ez a fájl egy program, és ezt a programot indítja el a Web-szerver. Amit ez a program kiír, az a visszaküldendő információ.

Ez a második eset a CGI program. Honnan tudja a Web-szerver, hogy egy fájlt futtatnia kell, vagy csak egyszerűen a tartalmát visszaküldeni? A Perl programok ugyanúgy szövegfájlok, mint a HTML fájlok, és a Perl fájlokat futtatnia kell a Web-szervernek, a HTML fájloknak pedig a tartalmát visszaadni. Fordítva pedig a GIF képek ugyanúgy binárisak, mint a UN*X alatt a lefordított programok. Mégis a GIF fájlokat a rendszer csak egyszerűen leküldi a böngészőnek, a futtatandó fájlokat pedig futtatnia kell.

A Web-szerver két dologról tudhatja, hogy egy fájl futtatandó CGI. Az egyik, hogy a fájlnak milyen jogosultságai vannak, a másik pedig az, hogy melyik könyvtárban van, esetleg mindkettőről. A könyvtárszerkezetben lévő könyvtárak közül a Web-szerverben csak néhány érhető el. Ezek a könyvtárak általában a „ServerRoot könyvtárában vannak és elérésük érdekében ú.n. „virtuális könyvtárak”, linkek mutatnak rájuk. A httpd.conf fájlban kell beállítani a virtuális könyvtárakat, illetve azt, hogy azokban letöltendő, vagy futtatandó fájlok vannak. A beállítások megváltoztatása után a Web-szervert újra kell indítani.

Amikor egy URL-t feldolgoz a Web-szerver akkor az URL-ben megadott könyvtárat megkeresi a konfigurációban megadott virtuális könyvtárak között. Ha például a /misu/ könyvtárhoz a /home/misu/public_html/ könyvtár van rendelve, akkor a példabeli URL-hez (http://www.masco.hu:80/misu/index.html) tartozó fájl, amelyiket a Web-szervernek vissza kell küldenie a böngésző felé a /home/misu/public_html/index.html. Persze az is lehet, hogy nincs /misu/ nevű virtuális könyvtár, ilyenkor a /, más néven gyökér virtuális könyvtárhoz tartozó könyvtár alatt keresi a gb könyvtárat a Web-szerver, és ha létezik, akkor a /home/httpd/html/misu/index.html fájlt küldi vissza a böngészőnek, ha pedig nem talál ilyent, akkor „404 Not found” hibaüzenetet tartalmazó HTTP választ ad.

Kérdés, hogy mi van akkor, ha létezik mind a két fájl, azaz a /home/misu/public_html/index.html is a megfelelő virtuális könyvtárral bekonfigurálva és a /home/httpd/html/misu/index.html is? Nos ez Web-szerver függő, de ajánlott az ilyesmit elkerülni. Persze tesztelni, kipróbálni lehet, de ez változhat verziónként is, és ha egy rendszer úgy van konfigurálva, hogy az ilyen, általában nem garantált tulajdonságokat kihasználja, akkor egy verzióváltásnál fejre állhat az egész.


Next: Környezeti változók Up: CGI és a dinamikus lapok Previous: CGI és a dinamikus lapok   Tartalomjegyzék

 
Misóka Zoltán 2000. 10. 05.