ABC skryptów CGI

Wstecz Dalej

Między serwerem a skryptem

Jak już wspomniano powyżej, standard CGI nie określa żadnego konkretnego języka programowania, w którym będą pisane skrypty. Specyfikuje jedynie sposób wymiany informacji między serwerem WWW i uruchomionym przezeń skryptem.

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

Jarosław Rafa 2000. Tekst udostępniony na licencji Creative Commons (uznanie autorstwa - użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.

Wersja HTML opracowana 11.10.2000.


Powrót do spisu treści Statystyka