Különbség a CGI és a Servlet között

CGI vs Servlet

A CGI (Common Gateway Interface) a legelső kísérlet a felhasználók számára dinamikus tartalom biztosítására. Ez lehetővé teszi a felhasználók számára a kiszolgálón található program végrehajtását az adatok feldolgozására és akár az adatbázisok elérésére a megfelelő tartalom előállítása érdekében. Mivel ezek a programok, be vannak írva a natív operációs rendszerbe, majd egy adott könyvtárban tárolódnak. A szervlet egy Java megvalósítása, amelynek célja a CGI-vel megegyező szolgáltatás nyújtása, de a natív operációs rendszerben összeállított programok helyett a Java bytekódba fordul, amelyet a Java virtuális gépen futtatnak. Noha a Java programokat a natív kódba lehet fordítani, a Java bájtkódban továbbra is inkább fordítják őket.

A servlet első előnye a CGI-vel szemben a platform függetlensége. A Servlet bármilyen operációs rendszeren futhat, amíg a JVM telepítve van, ami azt jelenti, hogy akkor sem lenne problémája, ha az operációs rendszert váltja. A CGI-vel az operációs rendszer váltása nehéz és fáradságos folyamat, mivel a programokat újra kell fordítania az új operációs rendszerben..

Mivel önálló programokat futtat a CGI-ben, azok végrehajtásukkor létrehozják a saját folyamatukat, ami nem történik meg a szervlettel, mivel csak megosztják a JVM memóriaterületét. Ez problémákat okozhat az általános költségekkel kapcsolatban, különösen akkor, ha exponenciálisan növeli a felhasználók számát. Ez sebezhetőségi problémákat is felvet, mivel a programot a kiszolgálón történő futtatás után semmilyen módon nem ellenőrzik.

Később a CGI használatakor a szokásos módszer a szkriptek. Ez csökkenti a programok létrehozásához szükséges időt, és általában biztonságosabb. A CGI-vel azonnal futtathat parancsfájlokat, míg a szervlet-ekkel a szkriptet Javaba kell fordítani, és szervlet-nek kell fordítani, amely kissé növeli a betöltési időt.

Összefoglaló:
Az 1.CGI általában olyan futtatható fájlok, amelyek natív a kiszolgáló operációs rendszerén, bár a szervleteket a natív operációs rendszerre is lefordíthatjuk, a Java bytecode-ra fordítva, amelyet azután JVM-en futtatunk.
2.CGI programok platformfüggőek, míg a szervlet platformfüggetlen
3.CGI programok külön folyamatként futnak a számítógépen, míg a szervlet a JVM-en fut
4.CCGI érzékenyebbek lehetnek a támadásokra, mint a szervlet
Az 5.CGI közvetlenül feldolgozza a szkripteket, miközben le kell fordítani és össze kell fordítani, mielőtt szervletként futtathatnák