FORMULARZE INTERNETOWE, INTERAKCJE KLIENT-SERWER I DYNAMICZNE STRONY

Jak dotąd opisaliśmy najprostsze z dostępnych w sieci możliwości pobierania informacji z serwera. Podstawowa instrukcja http://www.myshop.co.uk powoduje załadowanie do klienta strony internetowej HTML zapisanej pod tym adresem na serwerze w postaci statycznego pliku danych. Gdy klient wysyła żądanie http do serwera, serwer obsługuje żądanie za pośrednictwem „demona http”, fragmentu kodu generowanego do obsługi każdego indywidualnego żądania. Demon jest wezwany do uruchomienia tylko jednego rodzaju procesu: zdalnego przesyłania plików, nic więcej. Strony są wyodrębniane z dysku, dodawanych jest kilka wierzchołków i końcówek, a dane są kodowane do transmisji za pomocą protokołu HTTP

Czasami może to nie być najlepszy lub wystarczający sposób robienia rzeczy. Przychodzą mi na myśl dwie szczególnie częste operacje: selektywne pobieranie dalszych szczegółów informacji podsumowanych na aktualnie przeglądanej stronie internetowej oraz zwracanie informacji od klienta na serwer, na przykład adresu pocztowego, w celu sfinalizowania transakcji . Oczywistym sposobem na zrobienie tego jest uwzględnienie dodatkowych informacji w ciągu http od klienta, który może uruchomić proces na serwerze i dostarczyć mu informacje związane z tym konkretnym zdarzeniem

Żądanie klienta do serwera WWW wywołuje „demona” HTTP w w normalny sposób, ale dodatkowo przekazuje resztę ciągu http do głównego systemu operacyjnego serwera, w sposób umożliwiający systemowi operacyjnemu uruchomienie procesu o nazwie w ciągu i dostarczenie mu danych zawartych również w ciąg. Specyfikacja przesyłania tych informacji i rozpoczynania wtórnego procesu została ujednolicona kilka lat temu w zestawie protokołów znanych pod wspólną nazwą Common Gateway Interface (CGI). Proces która została uruchomiona, nazywana jest metodą, a przekazywane do niej parametry, które są specyficzne dla bieżącej aktywności, są zmiennymi akcji. Protokół CGI definiuje, w jaki sposób te zmienne mają być reprezentowane w systemie i jak mogą być pobrane przez wywołaną metodę, niezależnie od języka kodu źródłowego (zwykle C, C11, Perl) tego ostatniego. Początkowo skrypty CGI były wykorzystywane do prostych metod zbierania informacji z formularzy wypełnianych przez użytkowników oraz do wstawiania prostych odpowiedzi bazy danych w obrębie tabel tworzonych przez serwer, jednak wzrosło zapotrzebowanie na bardziej elastyczne rozwiązania. Rozważmy na przykład strony pokazane na rysunkach

Klient wybrał towar z katalogu on-line poprzez przesłanie formularza na serwer, który zwrócił pozytywne potwierdzenie.

Ale załóżmy, że skoczka nie ma w magazynie? Wtedy oczekiwana odpowiedź byłaby podobna do poniższej. Przychodzące żądanie spowodowało zapytanie do bazy danych iw wyniku zapytania należy wykonać dwie możliwe akcje: co zrobić, gdy zapasy są/nie są dostępne. To tutaj możliwość uruchamiania procesów oparte na skryptach. Skrypt nie tylko zapewnia możliwość zwrócenia klientowi strony „towary dostępne” lub „niedostępne”, ale może też „spersonalizować” ją do konkretnego żądania („sweter nie ma młodości…”). Mogliśmy stworzyć zestaw stron statycznych dla każdej możliwej odpowiedzi, nawet dla każdego możliwego produktu, i przechowywać je w magazynie stron statycznych. Oczywiście byłoby to bardzo czasochłonne i stanowiłoby poważny problem z konserwacją. Zamiast tego chcemy tworzyć dynamiczne strony, które można dostosować do każdego zdarzenia. Zamiast mieć opisy stron HTML w statycznej bazie danych, po jednym dla każdego typu żądania klienta, strony są generowane dynamicznie, zgodnie z algorytmem zakodowanym w skrypcie. Można to zrobić za pomocą skryptów CGI, które wywołują wymaganą metodę, która działa jako osobny proces w systemie serwera (ale poza samym serwerem WWW). Jednak bardziej nowoczesny.

Coraz bardziej preferowana jest metoda taka jak Active Server Pages firmy Microsoft. W tym podejściu wewnątrz samego serwera WWW istnieje maszyna wirtualna (zdefiniowana w zestawie procesów), która ładuje odpowiedni plik z dysku do pamięci głównej . Ten plik lub skrypt zawiera zarówno podstawowe dane strony, jak i kod programu dla metody. Możemy myśleć o tym działaniu jako o trzymaniu opisu pustej strony szablonu oraz metodzie dokończenia strony zgodnie z bieżącą wartością dowolnych zmiennych akcji dostarczonych przez klienta. Metoda jest tłumaczona przez oprogramowanie na maszynie wirtualnej na serwerze, zwykle jest to interpreter (chociaż może to być kompletna operacja kompilacji i uruchamiania) i wykonywana, po dostarczeniu niezbędnych zmiennych metody i akcji, w żądaniu http. Skrypty można pisać w dowolnym z wielu języków, ale prawdopodobnie najczęściej używane są Perl i JAVAscript. Oprócz dostarczania zaawansowanych funkcji programistycznych wykraczających poza proste skrypty CGI, podejście aktywnych stron ma również przewagę wydajnościową. Jak pokazano , oryginalny model CGI obejmuje uruchomienie procesu znajdującego się poza serwerem WWW. Zabiera to dodatkowe koszty przetwarzania i może, w obciążonym systemie, powodować opóźnienia. Może to nawet prowadzić do błędu pamięci poza zakresem, jeśli projekt nie jest odpowiednio określony. Przy aktywnych stronach maszyna wirtualna obsługująca proces jest częścią serwera WWW, dzięki czemu jest szybsza i bardziej niezawodnie zintegrowana.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *