De meeste mensen beschouwen een webserver als een magische zwarte doos die pagina’s uit het niets tevoorschijn tovert. Dat is het niet. In de kern is het werk verrassend alledaags. Een webserver haalt een bestand op van een schijf en schuift het via de kabel naar uw browser. Dat is alles. Eenvoudig. Direct.
Laten we eens kijken wat er gebeurt als u een URL in de adresbalk typt. Stel je voor dat je http://www.bygpub.com/books/tg2rw/author.htm invoert. De server ontvangt een verzoek voor het specifieke pad /books/tg2rw/author.htm. Als je in de configuratie van de server zou kunnen kijken, zou je een hoofdmap zien die tijdens de installatie is gedefinieerd, zoiets als c:\Mijn documenten\www. De server zoekt niet naar /books/tg2rw/author.htm op de gehele harde schijf. Er wordt gezocht naar dat pad relatief ten opzichte van de root. Het combineert dus de twee: c:\Mijn documenten\www + /books/tg2rw/author.htm. Het vindt het bestand. Het verzendt het. Klaar.
Maar wat gebeurt er als de URL eindigt op een schuine streep? Zoals http://www.bygpub.com/books/tg2rw/?
De server begrijpt dit als een mapverzoek en niet als een bestandsverzoek. Er is een standaardbestand nodig om te kunnen worden weergegeven. Het raadt niet willekeurig. Er wordt een strikte hiërarchie gevolgd. Het zoekt naar index.html. Als dat ontbreekt, probeert het index.htm. Als dat niet lukt, wordt er gecontroleerd op default.html. Ten slotte probeert het default.htm. De exacte lijst is afhankelijk van de serversoftware, maar de logica is consistent. De server converteert de map-URL stilletjes naar een bestands-URL, waarbij de eerste gevonden overeenkomst wordt toegevoegd. Dat directoryverzoek wordt dus http://www.bygpub.com/books/tg2rw/index.htm. Je ziet de bestandsnaam nooit veranderen. Je ziet alleen de pagina laden. Voor elk ander bestand in die map moet u het expliciet een naam geven. Dit is de basislijn voor het verwerken van statische bestanden.
Voorbij statische bestanden: de rol van CGI
Statische bestanden zijn slechts de helft van het verhaal. De meeste moderne webservers verwerken ook dynamische bestanden. Ze genereren deze pagina’s niet zomaar; zij geven het verzoek door aan een extern programma. Dit mechanisme wordt de Common Gateway Interface of CGI genoemd.
Je hebt CGI ontelbare keren gebruikt zonder het te beseffen. Het is de motor achter elke webpagina die verandert op basis van uw input. Overweeg deze voorbeelden:
-
Gastenboeken : u voert een bericht in een HTML-formulier in. De server verzendt niet alleen een vooraf geschreven pagina. Het voert een script uit dat uw tekst aan een database of bestand toevoegt en vervolgens een nieuwe pagina genereert met uw invoer.
-
WHOIS-zoekopdrachten : u typt een domeinnaam in een formulier. Welke pagina u terugkrijgt, is geheel afhankelijk van het domein dat u heeft ingevoerd. De server levert geen statisch bestand; het vraagt een programma om live gegevens op te halen.
-
Zoekmachines : u typt trefwoorden. De server voert een zoekopdracht uit, scant indexen en creëert dynamisch een resultatenpagina die is afgestemd op uw zoekopdracht.
Al deze interacties zijn afhankelijk van CGI. De webserver fungeert als coördinator, geeft de formuliergegevens van de gebruiker door aan een programma en stuurt vervolgens de uitvoer van het programma terug naar uw browser. Door deze scheiding kunnen servers complexe logica verwerken zonder vast te lopen in de



























