Większość ludzi postrzega serwer WWW jako rodzaj magicznej czarnej skrzynki, która tworzy strony z powietrza. W rzeczywistości nie jest to prawdą. W istocie jego zadanie jest zaskakująco banalne. Serwer WWW pobiera plik z dysku i przesyła go przez sieć do przeglądarki. To wszystko. Tylko. Prosty.
Przyjrzyjmy się, co się stanie, gdy wpiszesz adres URL w pasku adresu. Wyobraź sobie, że wpisujesz „http://www.bygpub.com/books/tg2rw/author.htm”. Serwer odbiera żądanie określonej ścieżki /books/tg2rw/author.htm. Jeśli zajrzysz do konfiguracji serwera, zobaczysz katalog główny zdefiniowany podczas instalacji, na przykład c:\Moje dokumenty\www. Serwer nie przeszukuje całego dysku twardego w poszukiwaniu /books/tg2rw/author.htm. Szuka tej ścieżki względnie do katalogu głównego. Łączy więc dwie ścieżki: c:\Moje dokumenty\www + /books/tg2rw/author.htm. Znajduje plik. Wysyła to. Gotowy.
Ale co się stanie, gdy adres URL zakończy się ukośnikiem? Na przykład http://www.bygpub.com/books/tg2rw/?
Serwer rozumie to jako żądanie skierowane do katalogu, a nie do pliku. Do wyświetlenia potrzebny jest plik domyślny. Nie dokonuje przypadkowych domysłów. Przestrzega ścisłej hierarchii. Wyszukuje plik index.html. Jeżeli go tam nie ma, próbuje znaleźć plik index.htm. Jeśli to się nie powiedzie, sprawdza obecność pliku default.html. Na koniec próbuje znaleźć plik default.htm. Dokładna lista zależy od oprogramowania serwera, ale logika pozostaje taka sama. Serwer dyskretnie przekształca adres URL katalogu w adres URL pliku, dołączając pierwsze znalezione dopasowanie. Zatem żądanie katalogu staje się http://www.bygpub.com/books/tg2rw/index.htm. Nigdy nie widzisz zmiany nazwy pliku. Widzisz tylko ładowanie strony. Każdy inny plik w tym katalogu wymaga jawnej nazwy. Jest to podstawowy poziom przetwarzania plików statycznych.
Poza plikami statycznymi: rola CGI
Pliki statyczne to tylko połowa historii. Większość nowoczesnych serwerów internetowych obsługuje również pliki dynamiczne. Nie generują tych stron od zera na bieżąco; przekazują żądanie do programu zewnętrznego. Mechanizm ten nosi nazwę Common Gateway Interface lub CGI.
Korzystałeś z CGI niezliczoną ilość razy, nawet nie zdając sobie z tego sprawy. Jest to silnik każdej strony internetowej, który zmienia się w zależności od Twoich danych wejściowych. Rozważ następujące przykłady:
-
Księgi Gości : Wpisujesz wiadomość do formularza HTML. Serwer nie wysyła tylko wcześniej napisanej strony. Uruchamia skrypt, który dodaje Twój tekst do bazy danych lub pliku, a następnie generuje nową stronę wyświetlającą Twój wpis.
-
Zapytania WHOIS : W formularzu wprowadzasz nazwę domeny. Strona, którą otrzymasz, zależy całkowicie od wprowadzonej domeny. Serwer nie udostępnia pliku statycznego; prosi program o pobranie najnowszych danych.
-
Wyszukiwarki : Wpisujesz słowa kluczowe. Serwer wykonuje żądanie, skanuje indeksy i dynamicznie tworzy stronę wyników dostosowaną do Twojego wyszukiwania.
Wszystkie te interakcje opierają się na CGI. Serwer WWW pełni rolę dyspozytora, przekazując dane z formularzy użytkownika do programu, a następnie wysyłając dane wyjściowe programu z powrotem do przeglądarki. Ta separacja umożliwia serwerom obsługę złożonej logiki bez przeciążenia


























