nieprawidłowe.
Przeprowadzono kolejny eksperyment. Nawiązano połączenie, takie samo jak przy poprzedniej próbie, jednak wysłano treść ’GET /’ i potwierdzono ją kombinacją znaków CR LF. Odpowiedź serwera przestawia listing 5.
| Hello World!
Listing 3: Odpowiedź serwera HTTP.
Treść Hello World! jest zawartością pliku index.html, który umieszczono w tym samym katalogu co skrypt server3.pl. Odpowiedź jest zatem prawidłowa. Przesłana została prawidłowa zawartość. Oznacza to, że skrypt działa poprawnie.
Celem kolejnego kroku była modyfikacja serwera HTTP w taki sposób, aby niezależnie od żądania, zwracał jego nagłówek. Listing 4 przedstawia skrypt po modyfikacji.
Skrypt różni się jedynie zawartością drugiej pętli. Zrezygnowano tutaj ze sprawdzania, czy metoda zapytania jest typu GET. W celu wysłania odpowiedzi, należy ją najpierw przygotować, co następuje w linii 15. Treść zapytania w formie tekstowej ($r->as_string) zostaje dołączona do obiektu $response. W linii 17 następuje przesłanie przygotowanej odpowiedzi.
Działanie tak skonstruowanego skryptu przetestowano przy użyciu programu Mozilla Firef ox w wersji 3.0. W pasku adresu programu Firefox wpisano adres serwera http://localhost:4321/. Program wyświetlił informacje, które przedstawia listing 5.
1 GET / HTTP/l.1
2 Connection: keep-alive
4 Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 r, Accept-Encoding: gzip.deflate o Accept-Language: pl,en-us;q=0.7.en;q=0.3
7 Host: localhost:4321
8 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.10)
9 Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729) FirePHP/0.2.4 10 Keep-Alive: 300
Listing 5: Odpowiedź zmodyfikowanego serwera HTTP.
Serwer zwrócił nagłówek żądania. W pierwszej linii widoczne jest, że program Firef ox wysłał żądanie typu GET. Ponieważ w przesyłanym adresie nie podano nazwy żadnego konkretnego pliku, to program wybiera domyślny katalog, czyli /. Druga linia zawiera informacje o rodzaju nawiązanego połączenia. W tym wypadku jest to keep-alive. Linia 3 zawiera akceptowane przez przeglądarkę treści, linia 4 - informacje na temat akceptowanego kodowania znaków, linia 5 - informacje na temat
2