kodowania danych a linia 6 akceptowane języki. W linii 7 znajduje się pełny adres serwera HTTP. Linia 8, oznaczona tagiem User-Agent, zawiera informacje o programie przy pomocy którego dokonano zapytania. Ostatnia linia zawiera wartość Keep-Alive, czyli czas w jakim kolejne zapytania do serwera będą wykonywane przy pomocy tego samego połączenia.
Zmodyfikowany skrypt działa poprawnie i spełnia założenia zadania, t.j. zwraca nagłówki żądań wysyłane przez progamy klienckie.
Kolejnym zadaniem było zwiększenie funkcjonalności serwera w taki sposób, aby możliwe było uruchomienie przy jego pomocy prostego serwisu www. Po raz kolejny wykorzystano program server3.pl. Dokonano niewielkich zmian, które umożliwiają przesłanie dowolnego żądanego pliku znajdującego się w wyznaczonym katalogu. Listing 6 przedstawia zmodyfikowany kod skryptu.
domyślny folder z plih
■ HTTP::Daemon->new(
LocalAddr => 'localhos LocalPort => 4321,
print "Please contact i
iy $c = $d->accept) {
Le (my $r = $c->get_request) { if ($r->method eq ’GET’) {
ssponse(SWEBDIR.S
Sc-> send.error(RC_FORBIDDEN)
I bezpośredni adres pliku w katalogu t index.html - domyślnie otwierany plik I przesyłanie pliku
Listing 6: Zmodyfikowany skrypt serwera HTTP.
Skrypt po modyfikacji zawiera w linii 4 zmienną SWEBDIR, która przechowuje ścieżkę do katalogu na dysku, w którym znajdują się pliki HTML. W pętli rozpoczynającej się od linii 15 sprawdzany jest warunek, czy zapytanie wykonane zostało metodą GET. Jeśli tak, to w zmiennej $f ile.s zapisany zostaje adres pliku podany w zapytaniu. Jeśli nie podano żadnego konkretnego pliku, to $file_s zawiera jedynie znak ’ / ’. W takim wypadku należy wyświetlić domyślną stronę, czyli index. html (linie 20-22). W lini 24 następuje wysłanie zawartości pliku o nazwie podanej w żądaniu klienta i znajdującym się w katalogu /home/kossa/www.
W katalogu /home/kossa/www umieszczono trzy pliki html ze wzajemnymi odnośnikami do siebie. Po otwarciu strony głównej w przeglądarce internetowej możliwe było przechodzenie pomiędzy poszczególnymi podstronami poprzez umieszczone na nich odnośniki.
Zmodyfikowany skrypt serwera działa dobrze i wykonuje prawidłowo swoje zadania.
3