Po przeciwnej stronie

Nieliczne osoby, które pamiętają początki Internetu, wiedzą, że istniały wtedy tylko statyczne strony HTML. Dopóki światowa Pajęczyna była dostępna dla nielicznych, a danych publikowano w Sieci niewiele, rozwiązanie takie było satysfakcjonujące. Sytuacja zaczęła się zmieniać, gdy rozpoczęto prace nad pierwszymi katalogami i wyszukiwarkami internetowymi – zaszła wtedy konieczność wprowadzenia do stron interaktywności i dynamicznego ich generowania, coraz częściej zaczęły się też pojawiać dokumenty zawierające formularze. Od tego momentu możemy mówić o rozwoju skryptowych języków server-side (czyli działających po stronie serwera).

Liczy się idea

Pomysł na wprowadzenie dynamiki w tworzeniu dokumentów internetowych wyglądał tak: na początku serwer WWW przyjmuje od przeglądarki żądanie pobrania strony. Odsyłacz prowadzi jednak nie do pliku, lecz programu skompilowanego do postaci binarnej lub skryptu interpretowanego przez aplikację zwaną parserem. Wynik ich działania zwracany jest do przeglądarki jako strona HTML. Tak oto powstał mechanizm CGI (Common Gateway Interface). Miał on na celu uniezależnić dynamiczne generowanie dokumentów od stosowanego języka. Skryptem CGI może być aplikacja napisana w prawie dowolnym języku: C/C++, Perlu, Pythonie, TCL, skrypcie powłoki systemu lub innym, potrafiącym odebrać i przetworzyć informację wysłaną przez użytkownika. Mimo uniwersalności mechanizm CGI ma dość poważne wady: uruchamia oddzielny proces zużywający zasoby systemowe, wymaga rekonfiguracji serwera WWW, a jeśli program jest źle napisany, może być źródłem niestabilności serwera. Następnym krokiem było wprowadzenie w serwerach WWW interfejsu programistycznego, tzw. API. Wykorzystujące go aplikacje miały dostęp do funkcji systemowych serwera i nie były uruchamiane w osobnym procesie. Dodatkowo po uruchmieniu zostawały w pamięci operacyjnej, więc przy kolejnym wywołaniu nie musiały być pobierane z dysku.

Aby scalić aplikacje internetowe z serwerem WWW, rozpoczęto pracę nad innym sposobem przetwarzania danych z formularzy i generowania stron HTML. Zmiana polegała na tym, że programy odbierające dane z przeglądarki mogły być przetwarzane “wewnątrz” serwera WWW przez odpowiednie moduły. Dzięki takiej integracji poprawiły się wydajność i bezpieczeństwo aplikacji internetowych.

W typowych językach wysokiego poziomu podczas kompilowania kod źródłowy zamieniany jest na postać binarną, zrozumiałą dla procesora. Z kolei skrypt do wykonania potrzebuje uruchomienia odpowiedniego programu – interpretera, który po załadowaniu i analizie (ang. parsing) skryptu wykona zawarte tam instrukcje.

Wadą języków interpretowanych jest to, że nie nadają się do realizacji skomplikowanych obliczeń. Spowodowane jest to tym, że przetworzenie jednego bloku kodu wymaga wykonania dużej liczby instrukcji procesora, podczas gdy w językach typu C/C++ jest ich od 1 do 10. Cechą języków skryptowych jest też to, że pozwalają na mniej zobowiązujący styl pisania kodu, brak w nich (przeważnie) deklarowania stałych i zmiennych, nie mają też jawnie określanych typów danych.

Więcej:bezcatnews