Wstecz | Dalej |
Serwer WWW uruchamiając skrypt przekazuje mu informacje trzema drogami:
Odpowiedzią skryptu powinien być dokument, który serwer ma odesłać do przeglądarki użytkownika, poprzedzony specjalnym nagłówkiem oraz pustym wierszem oddzielającym nagłówek od właściwej treści dokumentu. Dokument ten zazwyczaj jest stroną w języku HTML, ale może także zawierać dane dowolnego innego rodzaju (np. grafikę w formacie GIF czy JPEG), zgodnie z typem danych podanym w nagłówku.
Dokument, wraz z nagłówkiem, skrypt powinien wypisać na swoje standardowe wyjście. Pojęcie standardowego wyjścia znane jest każdemu, kto uczył się programować w jakimkolwiek języku programowania działającym w trybie tekstowym (konsolowym) - to miejsce, do którego domyślnie trafiają wszystkie wyniki wypisywane instrukcjami wyjścia, takimi jak "print" czy "write", jeżeli w instrukcjach tych nie określono jawnie, dokąd mają być kierowane. Przy zwykłym uruchomieniu programu z wiersza poleceń wyniki wypisywane na standardowe wyjście trafiają zazwyczaj na ekran terminala; jednak gdy program uruchamiany jest jako skrypt CGI, jego standardowe wyjście przechwytywane jest przez serwer WWW i wysyłane - po odpowiednim uzupełnieniu nagłówków - do klienta.
Tak więc, jeżeli napiszemy - w jakimkolwiek języku programowania - program, który wypisuje na swoje standardowe wyjście następujący tekst:
Content-type: text/html <html> <head><title>Skrypt</title></head> <body> <h1>Jestem skryptem</h1> </body> </html>to po umieszczeniu tego programu na stronie WWW jako skryptu CGI efekt jego wywołania za pomocą przeglądarki będzie wyglądał, jak na rys.2.
Pamiętajmy o konieczności przestrzegania ustalonego formatu wyników wypisywanych przez skrypt: nagłówek (w powyższym przykładzie składający się z jednego wiersza), pusty wiersz i właściwa treść. Jeżeli format ten nie będzie zachowany, zamiast wyników działania skryptu otrzymamy groźnie brzmiący komunikat o wewnętrznym błędzie serwera (Internal server error - rys.3).
Osoby z pewnym doświadczeniem w programowaniu zapewne przypominają sobie, że oprócz standardowego wyjścia (stdout) często korzysta się z tzw. standardowego wyjścia błędów (stderr), używanego do wypisywania komunikatów diagnostycznych. W przypadku skryptów CGI ten strumień wyjściowy kierowany jest do logów serwera WWW, tak więc, jeżeli nie mamy do nich dostępu (zazwyczaj dostęp ten ma jedynie administrator serwera), nie będzie on dla nas przydatny.
Wstecz | Dalej |
Powrót do spisu treści | Statystyka |