CGI i serwlet

Anonim

CGI vs Servlet

CGI (Common Gateway Interface) to pierwsza próba udostępnienia użytkownikom treści dynamicznych. Umożliwia użytkownikom wykonanie programu znajdującego się na serwerze w celu przetworzenia danych, a nawet dostępu do baz danych w celu wygenerowania odpowiedniej treści. Ponieważ są to programy, są napisane w natywnym systemie operacyjnym, a następnie przechowywane w określonym katalogu. Serwlet to implementacja języka Java, która ma na celu zapewnienie tej samej usługi, co CGI, ale zamiast programów skompilowanych w natywnym systemie operacyjnym kompiluje się do kodu bajtowego Java, który jest następnie uruchamiany na wirtualnej maszynie Java. Chociaż programy Java mogą być kompilowane do natywnego kodu, nadal wolą kompilować kod bajtowy Java.

Pierwszą zaletą serwletów nad CGI jest niezależność platformy. Serwlety można uruchamiać w dowolnym systemie operacyjnym tak długo, jak długo jest zainstalowana JVM, co oznacza, że ​​nie wystąpią żadne problemy, nawet jeśli zdecydujesz się na zmianę systemów operacyjnych. Dzięki CGI przełączanie systemu operacyjnego jest trudnym i pracochłonnym procesem, ponieważ konieczna jest rekompilacja programów w nowym systemie operacyjnym.

Ponieważ uruchamiasz niezależne programy w CGI, tworzą one swój własny proces, gdy są wykonywane, co nie dzieje się z serwletami, ponieważ po prostu współdzielą przestrzeń pamięci maszyny JVM. Może to prowadzić do problemów związanych z obciążeniem, zwłaszcza gdy zwiększasz wykładniczo liczbę użytkowników. Tworzy także problemy z lukami w zabezpieczeniach, ponieważ program nie jest w żaden sposób kontrolowany po uruchomieniu na serwerze.

Później najczęstszą metodą korzystania z CGI są skrypty. Skraca to czas potrzebny na tworzenie programów i generalnie jest bezpieczniejsze. Dzięki CGI możesz od razu uruchamiać skrypty, podczas gdy serwlety, musisz przetłumaczyć skrypt na język Java i skompilować go do serwletu, który dodaje trochę do czasu ładowania.

Streszczenie: 1.CGI są zwykle plikami wykonywalnymi, które są macierzystymi systemami operacyjnymi serwera, chociaż serwlety mogą być również kompilowane do macierzystego systemu operacyjnego, który może być skompilowany do kodu bajtowego Java, który jest następnie uruchamiany na maszynie JVM 2. Programy CGI są zależne od platformy, podczas gdy serwlety są niezależne od platformy 3. Programy CGI działają jako oddzielne procesy na komputerze, podczas gdy serwlety działają na JVM 4.CGI może być bardziej podatny na ataki niż serwlety 5.CGI może bezpośrednio przetwarzać skrypty, podczas gdy musi zostać przetłumaczone i skompilowane, zanim będzie można je uruchomić jako serwlet