Jak webové servery mapují adresy URL na soubory a spouštějí dynamické skripty

8

Většina lidí si pod pojmem webový server představí jakousi magickou černou skříňku, která vytváří stránky ze vzduchu. Ve skutečnosti to není pravda. V jádru je jeho úkol překvapivě banální. Webový server načte soubor z disku a přenese jej po síti do vašeho prohlížeče. To je vše. Jen. Přímočaré.

Pojďme se podívat, co se stane, když do adresního řádku zadáte URL. Představte si, že napíšete „http://www.bygpub.com/books/tg2rw/author.htm“. Server obdrží požadavek na konkrétní cestu /books/tg2rw/author.htm. Pokud byste se mohli podívat do konfigurace serveru, viděli byste kořenový adresář definovaný během instalace, například c:\My Documents\www. Server nevyhledává na celém pevném disku /books/tg2rw/author.htm. Hledá tuto cestu relativně ke kořenu. Kombinuje tedy dvě cesty: c:\My Documents\www + /books/tg2rw/author.htm. Najde soubor. Odešle to. Připraveno.

Co se ale stane, když adresa URL končí lomítkem? Například http://www.bygpub.com/books/tg2rw/?

Server to chápe jako požadavek na adresář, nikoli jako soubor. K zobrazení potřebuje výchozí soubor. Nedělá náhodné odhady. Dodržuje přísnou hierarchii. Hledá index.html. Pokud tam není, pokusí se najít index.htm. Pokud se to nezdaří, zkontroluje přítomnost default.html. Nakonec se pokusí najít default.htm. Přesný seznam závisí na softwaru serveru, ale logika zůstává stejná. Server v tichosti převede adresu URL adresáře na adresu URL souboru připojením první nalezené shody. Požadavek na adresář se tak stane http://www.bygpub.com/books/tg2rw/index.htm. Nikdy neuvidíte změnu názvu souboru. Jen vidíte, jak se stránka načítá. Každý další soubor v tomto adresáři vyžaduje explicitní název. Toto je základní úroveň zpracování statických souborů.

Kromě statických souborů: role CGI

Statické soubory jsou jen polovinou příběhu. Většina moderních webových serverů také zpracovává dynamické soubory. Negenerují tyto stránky za chodu od nuly; předají požadavek externímu programu. Tento mechanismus se nazývá Common Gateway Interface nebo CGI.

Použili jste CGI nesčetněkrát, aniž byste si to uvědomovali. Je to motor jakékoli webové stránky, která se mění na základě vašeho vstupu. Zvažte následující příklady:

  • Knihy hostů : Do formuláře HTML zadáte zprávu. Server neposílá pouze předem napsanou stránku. Spustí skript, který přidá váš text do databáze nebo souboru a poté vygeneruje novou stránku zobrazující váš záznam.

  • Dotazy WHOIS : Do formuláře zadáte název domény. Stránka, kterou získáte, závisí zcela na doméně, kterou zadáte. Server neobsluhuje statický soubor; požádá program o získání nejnovějších dat.

  • Vyhledávače : Zadáte klíčová slova. Server provede požadavek, prohledá indexy a dynamicky vytvoří stránku s výsledky přizpůsobenou vašemu vyhledávání.

Všechny tyto interakce spoléhají na CGI. Webový server funguje jako dispečer, předává data uživatelského formuláře programu a poté odesílá výstup programu zpět do vašeho prohlížeče. Toto oddělení umožňuje serverům zpracovávat složitou logiku bez přetížení