Aanbevolen, 2020

Editor'S Choice

Verschil tussen CGI en Servlet

De CGI en Servlet zijn de programma's die zich binnen het web of de toepassingsserver bevinden en die de communicatie tussen de webserver en de browser (clientzijde) ondersteunen om de webinhoud dynamisch te genereren. CGI en servlet kunnen worden onderscheiden omdat ze op verschillende manieren werken en verschillende functies en functies hebben. De CGI-programma's (Common Gateway Interface) kunnen worden ontworpen in het eigen besturingssysteem en in het bijzonder in de directory worden bewaard. Aan de andere kant is de servlet een webcomponent die over het algemeen in Java wordt geschreven en in een virtuele Java-machine wordt uitgevoerd.

Vergelijkingstabel

Basis voor vergelijkingCGIservlet
basis-Programma's worden geschreven in het native OS.Programma's die met behulp van Java worden gebruikt.
PlatformafhankelijkheidPlatform afhankelijkVertrouwt niet op het platform
Creatie van procesElke clientaanvraag creëert zijn eigen proces.Processen worden gemaakt afhankelijk van het type aanvraag van de klant.
Conversie van het scriptPresenteren in de vorm van uitvoerbare bestanden (afkomstig van het besturingssysteem van de server).Gecompileerd met Java Bytecode.
Draait opAfzonderlijk procesJVM
VeiligheidMeer kwetsbaar voor aanvallen.Kan aanvallen weerstaan.
Snelheidlangzamersneller
Verwerking van scriptdirectVoordat de scripts worden uitgevoerd, wordt deze vertaald en gecompileerd.
DraagbaarheidKan niet worden geporteerddraagbaar

Definitie van CGI

De CGI (Common Gateway Interface) is een interface die externe programma's (CGI-scripts) op een webserver verwerkt om de uitvoering van de interactieve webpagina's mogelijk te maken. CGI is ontwikkeld door NCSA (National Center for Supercomputing Applications) in 1993. Het bevindt zich aan de serverkant en stelt webbrowsers in staat om te communiceren met programma's op de webserver. Als een webpagina bijvoorbeeld een database opvraagt ​​of een gebruiker de formulierinformatie verzendt naar de server, worden CGI-scripts opgeroepen. De server geeft die informatie door aan een applicatie op twee manieren GET of POST, waarna de applicatie op de server terugkeert naar de browser. Op deze manier krijgen browsers enkele resultaten voor de gebruiker.

CGI is een voorwaarde voor het beschrijven van een methode voor het uitvoeren van CGI-scripts en het leveren van de resultaten aan de server voor die specifieke programma's. De functie van een CGI is om de informatie die wordt ontvangen van de browser te scannen en een goed antwoord te produceren, na voltooiing van de taak wordt het CGI-script beëindigd. In Common Gateway Interface betekent de common dat deze prima werkt in elk besturingssysteem of elke programmeertaal.

Vroeger werden UNIX-shellscripts en PERL gebruikt om de CGI-programma's te schrijven, dat is de reden dat het als CGI- scripts wordt genoemd . Maar nu kan elk van de talen zoals C, C ++, Perl, Visual Basic of Python worden gebruikt. Hoewel CGI de potentiële beveiligingsproblemen kan veroorzaken, kan de webserver ook uitvoerbare bestanden als CGI-programma's behandelen in sommige specifieke mappen. CGI verwerkt elk clientverzoek door een afzonderlijk proces dat de serverbelasting verhoogt waardoor het langzamer wordt.

Definitie van Servlet

Een servlet is een op Java gebaseerde webcomponentact als een tussenliggend programma dat de interactie tussen de webbrowser of HTTP-client en HTTP-server mogelijk maakt. Net als bij CGI kunnen servlets ook worden gebruikt om de informatie te verzamelen via de webpaginaformulieren, de records uit de database te tonen en dynamische webpagina's te genereren met behulp van een container. Servlet is een Java-klasse die niet afhankelijk is van het platform en verder is gecompileerd naar de bytecode die platformonafhankelijk is. De platformneutrale bytecode kan dynamisch worden opgeslagen en uitgevoerd door de Java-webserver. Servlet gebruikt socket- en RMI- mechanisme om de verbinding tot stand te brengen tussen applets, databases of andere databaseprogramma's.

Servlet-container is een onderdeel van een webserver die HTTP- en HTTPS-protocollen ondersteunt . Het maakt gebruik van de verzoek / responsmethode door gebruik te maken van het HTTP- en HTTPS-protocol om interactie met webclients mogelijk te maken. In tegenstelling tot CGI wordt servlet binnen de adresruimte van de webserver uitgevoerd, waarbij elke client niet noodzakelijk afzonderlijk wordt behandeld. In de servlet wordt een verzameling beperkingen afgedwongen op de server om de bronnen op de server te beschermen.

Belangrijkste verschillen tussen CGI en Servlet

  1. CGI-scripts worden geschreven in native OS en opgeslagen in de bepaalde directory. Aan de andere kant worden servlet-programma's meestal geschreven in Java, die is gecompileerd tot Java-bytecode en wordt uitgevoerd in JVM.
  2. CGI is platformspecifiek waardoor het moeilijk is om tussen besturingssystemen te schakelen. Servlets kunnen daarentegen worden uitgevoerd in elk besturingssysteem dat JVM heeft geïnstalleerd, en daarom is het platformonafhankelijk.
  3. In CGI kan elk binnenkomend klantverzoek een afzonderlijk proces genereren terwijl servlet, processen niet nodeloos worden gecreëerd en de geheugenruimte van de JVM delen.
  4. CGI-scripts zijn uitvoerbare programma's die zijn geschreven in het native besturingssysteem van de server. Servlets daarentegen worden gecompileerd naar Java bytecode die op JVM draait.
  5. Servlet is veiliger dan CGI omdat het Java gebruikt.
  6. De snelheid, prestaties en efficiëntie van de servlet is beter dan CGI.
  7. CGI-scripts kunnen direct worden verwerkt. Integendeel, de servlet vertaalt en compileert eerst het programma en verwerkt het vervolgens.
  8. Als het gaat om draagbaarheid is servlet draagbaar terwijl CGI dat niet is.

Conclusie

De CGI en Servlet werken op dezelfde manier, maar het gebruik van servlet is voordelig ten opzichte van CGI omdat de servlet snel, veilig, platformonafhankelijk, eenvoudig te ontwikkelen, toegankelijk is via verschillende API's en wordt ondersteund door verschillende webservers.

Top