AWWW-1st3.6-w05.tresc-1.0-Slajd11
Przykładowy program CGI (2)
Na tym slajdzie przedstawiono przykład analogicznego programu CGI generującego pełen nagłówek odpowiedzi HTTP. Zauważmy, że nazwa pliku programu rozpoczyna się od słowa "nph-". Struktura przykładowego programu jest następująca:
1. Program CGI wysyła do standardowego wyjścia zbiór pól nagłówka odpowiedzi HTTP. Pola te są bez zmian przekazywane przez serwer HTTP do klienta HTTP.
2. Program CGI wysyła do standardowego wyjścia pusty wiersz, oznaczający, że zakończono wysyłanie pól nagłówka HTTP i przystąpiono do generowania treści ciała odpowiedzi HTTP.
3. Program CGI wysyła treść ciała odpowiedzi HTTP. Treść tę stanowi dokument HTML. Ponieważ znaki "<" i ">" pełnią rolę znaków specjalnych w MS DOS, to zostały poprzedzone znakiem sterującym "^". Wewnątrz generowanego dokumentu HTML umieszczono wartość zmiennej środowiskowej QUERY_STRING, która wg specyfikacji CGI zawiera parametry żądania HTTP typu GET. Ponadto, program CGI wykonuje polecenie systemowe DIR, a jego wynik również umieszcza w generowanym dokumencie HTML.
Po prawej stronie slajdu przedstawiono przykładową odpowiedź HTTP powstałą w wyniku pracy programu CGI. Zauważmy, że ta odpowiedź zawiera pola nagłówka HTTP, które pochodzą bezpośrednio od programu CGI, zostały jednak wzbogacone o pole "Content-length", zawierające rozmiar ciała odpowiedzi HTTP. Rozmiar ten jest automatycznie wyznaczany przez serwer HTTP. W przykładowym wywołaniu użytkownik dołączył swoje imię (Marek) do adresu URL żądania: "http://www.poznan.pl/cgi-bin/nph-test-cgi.bat?Marek".