Különbség a CGI és a Servlet között A különbség a
CGI (Common Gateway Interface) egy olyan elsődleges kísérletet hajtanak végre, amely dinamikus tartalmat biztosít a felhasználóknak. Lehetővé teszi a felhasználók számára, hogy egy kiszolgálón elhelyezkedő programot futtassanak az adatok feldolgozásához és adatbázisokhoz való hozzáféréshez annak érdekében, hogy a megfelelő tartalmat előállítsák. Mivel ezek a programok, azok a natív operációs rendszerben vannak írva, majd egy adott könyvtárban vannak tárolva. A servlet egy olyan Java implementáció, amelynek célja ugyanaz a szolgáltatás, mint a CGI, de a natív operációs rendszerben összeállított programok helyett a Java-bájtkódot állítja össze, amelyet ezután a Java virtuális gépen futtat. Bár a Java programokat a natív kódra lehet fordítani, még mindig a Java bytecode-ban fordítanak.
A CGI feletti servletek első előnye a platform függetlenségének. Mindaddig, amíg egy JVM telepítve van, a Servlet minden operációs rendszeren futtatható, ami azt jelenti, hogy Önnek sem lenne probléma, még akkor sem, ha megváltoztatja az operációs rendszereket. A CGI segítségével az operációs rendszer váltása nehéz és fáradságos folyamat, mivel az új operációs rendszerben újra kell fordítani a programokat.
Mivel önálló programokat futtat a CGI-ban, létrehozzák a saját folyamatot végrehajtásukkor, ami nem történik meg a servletekkel, mivel csak megosztják a JVM memóriahelyét. Ez többletköltséggel járhat, különösen akkor, ha exponenciálisan növeli a felhasználók számát. Ezenkívül sebezhetőségi problémákat is okoz, mivel a programot nem lehet semmilyen módon ellenőrizni, ha a szerveren fut.
Később, a leggyakoribb módszer a CGI használata során parancsfájlok segítségével történik. Ez csökkenti a programok létrehozásához és általában biztonságosabbá tételéhez szükséges időt. A CGI segítségével azonnal futtathatsz parancsfájlokat, míg a servletek, akkor be kell fordítanod a szkriptet a Java-ba, és be kell töltened egy szervletbe, ami kicsit hozzáadja a betöltési időt.
Összefoglaló:
1. A CGI rendszerint a kiszolgáló operációs rendszerén alapuló végrehajtható fájlok, bár a szerverek a natív operációs rendszerhez is fordíthatók, a Java bytecode-hoz fordíthatóak, és ezután JVM
2-en futnak. A CGI programok platformfüggőek, míg a servletek platformfüggetlenek
3. A CGI programok különálló folyamatokként futnak a számítógépen, míg a servletek a JVM
4 alatt futnak. A CGI sokkal sebezhetőbb a támadásoknál, mint a servletek
5. A CGI közvetlenül feldolgozhatja a szkripteket, miközben le kell fordítani és össze kell fordítani, mielőtt szervletként futtatható