Różnica między CGI a serwletem

Różnica między CGI a serwletem

CGI vs Servlet

CGI (interfejs Common Gateway) to pierwsza próba zapewnienia użytkownikom dynamicznej treści. Umożliwia użytkownikom wykonywanie programu, który znajduje się na serwerze w celu przetwarzania danych, a nawet dostępu do baz danych w celu uzyskania odpowiedniej treści. Ponieważ są to programy, są one zapisane w natywnym systemie operacyjnym, a następnie przechowywane w określonym katalogu. Servlet to implementacja Java, której celem jest świadczenie tej samej usługi, co CGI, ale zamiast programów opracowanych w natywnym systemie operacyjnym, kompiluje się w kodzie bajdowym Java, który jest następnie uruchamiany w maszynie wirtualnej Java. Chociaż programy Java można skompilować w kodzie natywnym, nadal wolą kompilować w kodach bajdów Java.

Pierwszą zaletą serwletów nad CGI jest niezależność platformy. Servlety mogą działać w dowolnym systemie operacyjnym tak długo, jak instalowany jest JVM, co oznacza, że ​​nie miałbyś żadnego problemu, nawet jeśli zdecydujesz się przełączać systemy operacyjne. Dzięki CGI przełączanie systemu operacyjnego jest trudnym i pracochłonnym procesem, ponieważ trzeba ponownie skompilować programy w nowym systemie operacyjnym.

Ponieważ uruchamiasz niezależne programy w CGI, tworzą własny proces podczas ich wykonywania, coś, co nie dzieje się z serwletami, ponieważ po prostu dzielą się w przestrzeni pamięci JVM. Może to prowadzić do problemów związanych z kosztami ogólnymi, zwłaszcza gdy zwiększasz liczbę użytkowników wykładniczo. Stwarza również problemy z podatnością na zagrożenia, ponieważ program nie jest w żaden sposób kontrolowany po uruchomieniu na serwerze.

Później najczęstszą metodą podczas korzystania z CGI są za pośrednictwem scenariuszy. To skraca czas potrzebny na tworzenie programów i jest ogólnie bezpieczniejszy. Dzięki CGI możesz od razu uruchomić skrypty, podczas gdy serwlety musisz przetłumaczyć skrypt na Java i skompilować go na serwlet, który nieco dodaje czasu ładowania.

Streszczenie:
1.CGI są zwykle wykonywaniami, które są natywne w systemie operacyjnym serwera, chociaż serwlety mogą być również skompilowane do natywnego systemu operacyjnego, można skompilować do Java bajtecode, który jest następnie uruchamiany na JVM
2.Programy CGI są zależne od platformy, podczas gdy serwlety są niezależne od platformy
3.Programy CGI działają jako osobne procesy na komputerze, podczas gdy serwlety działają na JVM
4.CGI może być bardziej podatne na ataki niż serwlety
5.CGI może bezpośrednio przetwarzać skrypty, podczas gdy należy je przetłumaczyć i skompilować, zanim będzie można go uruchomić jako serwlet