| CGI Wstęp |
Wady
CGI i inne rozwiązania Aplikacje CGI cechują się mała wydajnością i wymagają znacznych zasobów systemowych ze strony serwera. Program CGI jest uruchamiany przez serwer jako oddzielny proces, który otrzymuje własną przestrzeń adresową. W małych zadaniach takich jak: obsługa formularzy, automatyczne odpowiedzi na listy, liczniki tego typu programy doskonale sobie radzą. W filozofii CGI kryją się mało bezpieczne elementy. Jeśli program zapisuje dane z formularza do pliku, to plikowi oraz katalogowi z tym plikiem musimy nadać prawa zapisu dla odpowiedniego użytkownika/grupy (domyślny gość dla serwera WWW lub użytkownik, który uruchomił serwer WWW/CGI), co oczywiście jest potencjalną dziurą w zabezpieczeniach maszyny-serwera. Kilku producentów serwerów WWW zareagowało na problem wydajności CGI przez stworzenie własnych interfejsów API dla serwera WWW. Programy korzystające z takiego API również są uruchamiane po stronie serwera, ale są bardziej wydajne i bezpieczniejsze od aplikacji CGI. Interfejsy API pozwalają programiście robić wszystko to, co potrafi CGI i spełniać pewne szczególne wymagania aplikacji WWW. Najbardziej znane API są związane z najbardziej popularnymi serwerami WWW: NSAPI z serwerem firmy Netscape, ISAPI z serwerem firmy Microsoft. Ciekawe, że interfejs ISAPI został stworzony wspólnie przez firmy Process Software (serwer Purveyor) i Microsoft. Serwer Apache ma również własne API. Programowanie z użyciem API serwerów WWW jest znacznie trudniejsze, niż tworzenie programów CGI. Wymagane jest umieszczanie funkcji w bibliotekach DLL (dla WinNT), korzystanie z wielowątkowości, synchronizacja procesów, bezpośrednie programowanie protokołu TCP/IP, złożona obsługa błędów. Dlatego bardziej popularne powinny stać się nakładki na API służące np. do łączenia baz danych z serwerami WWW. Ponieważ funkcje należy umieszczać w bibliotekach DLL, są ładowane do tej samej przestrzeni adresowej, co serwer WWW. Nie jest tworzony nowy proces, a jedynie wątek. Doświadczenie użytkownicy serwera Apache podają, że jego API odciążą od rozwiązywania wszystkich wymienionych problemów i nie jest zbyt trudny do opanowania. |
Copyright (C) 1997 by Mariusz Jasiński