Verschil tussen CGI en Servlet

CGI versus Servlet

CGI (Common Gateway Interface) is de allereerste poging om gebruikers dynamische inhoud te bieden. Hiermee kunnen gebruikers een programma uitvoeren dat zich op de server bevindt om gegevens te verwerken en zelfs toegang te krijgen tot databases om de relevante inhoud te produceren. Omdat dit programma's zijn, worden ze geschreven in het oorspronkelijke besturingssysteem en vervolgens opgeslagen in een specifieke map. Een servlet is een implementatie van Java die dezelfde service biedt als CGI, maar in plaats van programma's die zijn gecompileerd in het oorspronkelijke besturingssysteem, compileert het in de Java bytecode die vervolgens wordt uitgevoerd op de virtuele Java-machine. Hoewel Java-programma's kunnen worden gecompileerd tot de native code, compileren ze nog steeds het liefst in de Java bytecode.

Het eerste voordeel van servlets boven CGI is de platformonafhankelijkheid. Servlets kunnen op elk besturingssysteem worden uitgevoerd zolang er een JVM is geïnstalleerd, wat betekent dat u geen enkel probleem zou hebben, zelfs als u ervoor kiest om van besturingssysteem te wisselen. Met CGI is het wisselen van besturingssysteem een ​​moeilijk en arbeidsintensief proces, omdat u de programma's in het nieuwe besturingssysteem opnieuw moet compileren.

Omdat u onafhankelijke programma's in CGI uitvoert, maken ze hun eigen proces wanneer ze worden uitgevoerd, iets dat niet gebeurt met servlets omdat ze gewoon delen in de geheugenruimte van de JVM. Dit kan leiden tot problemen met betrekking tot overhead, vooral wanneer u het aantal gebruikers exponentieel verhoogt. Het creëert ook kwetsbaarheidsproblemen omdat het programma op geen enkele manier wordt gecontroleerd als het op de server wordt uitgevoerd.

Later, de meest voorkomende methode bij het gebruik van CGI is via scripts. Dit verkort de tijd die nodig is voor het maken van programma's en is over het algemeen veiliger. Met CGI kunt u meteen scripts uitvoeren, terwijl u servlets, u zou het script in Java moeten vertalen en het in een servlet moeten compileren dat een beetje toevoegt aan de laadtijd.

Samenvatting:
1.CGI zijn meestal uitvoerbare bestanden die eigen zijn aan het besturingssysteem van de server, hoewel servlets ook kunnen worden gecompileerd naar het native OS en kunnen worden gecompileerd naar Java bytecode die vervolgens wordt uitgevoerd op een JVM
2.CGI-programma's zijn platformafhankelijk, terwijl servlets platformonafhankelijk zijn
3.CGI-programma's worden als afzonderlijke processen op de computer uitgevoerd, terwijl servlets op de JVM worden uitgevoerd
4. CGI kan kwetsbaarder zijn voor aanvallen dan servlets
5.CGI kan scripts direct verwerken, terwijl het moet worden vertaald en gecompileerd voordat het kan worden uitgevoerd als een servlet