
Sammenligningstabel
Grundlag for sammenligning | CGI | servlet |
---|---|---|
Grundlæggende | Programmerne er skrevet i det oprindelige OS. | Programmer ansat ved hjælp af Java. |
Platformafhængighed | Platform afhængig | Stole ikke på platformen |
Oprettelse af proces | Hver klientanmodning opretter sin egen proces. | Processer oprettes afhængigt af typen af klientanmodningen. |
Konvertering af scriptet | Til stede i form af eksekverbare (native til server OS). | Kompileret til Java Bytecode. |
Kører videre | Separat proces | JVM |
Sikkerhed | Mere sårbare over for angreb. | Kan modstå angreb. |
Hastighed | Langsommere | Hurtigere |
Behandling af script | Direkte | Før du kører scriptsne, oversættes den og kompileres. |
overførselsret | Kan ikke portes | Transportabel |
Definition af CGI
CGI (Common Gateway Interface) er en grænseflade, der håndterer eksterne programmer (CGI scripts) på en webserver for at muliggøre udførelsen af de interaktive websider. CGI blev udviklet af NCSA (National Center for Supercomputing Applications) i 1993. Det ligger på serversiden og gør det muligt for webbrowsere at interagere med programmer på webserveren. For eksempel, hvis en webside spørger en database eller en bruger sender formularoplysningerne til serveren på det tidspunkt, kaldes CGI-scripts. Serveren overfører disse oplysninger til en applikation på to måder, GET eller POST, så applikationen reagerer på serveren tilbage til browseren. På denne måde får browsere nogle resultater for brugeren.
CGI er en bestemmelse for at beskrive en metode til at køre CGI-scripts og give resultaterne tilbage til serveren for de pågældende programmer. Funktionen af en CGI er at scanne de modtagne oplysninger fra browseren og frembringe et korrekt svar. Efter afslutningen af opgaven afbrydes CGI-scriptet. I Common Gateway Interface betyder den fælles, at den kan fungere fint i ethvert operativsystem eller programmeringssprog.
Tidligere var UNIX shell scripts og PERL brugt til at skrive CGI programmerne, det er grunden til, at det hedder CGI "scripts" . Men nu kan et af sprogene som C, C ++, Perl, Visual Basic eller Python bruges. Selvom CGI kan føre de potentielle sikkerhedsproblemer, da webserveren også kan behandle eksekverbare filer som CGI-programmer i nogle specifikke mapper. CGI håndterer hver klientanmodning med en separat proces, der øger serverbelastningen, hvilket gør det langsommere.
Definition af Servlet
A Servlet er en Java-baseret webkomponent handling som et mellemliggende program, der letter samspillet mellem webbrowser eller HTTP-klient og HTTP-server. I lighed med CGI kan servlets også bruges til at indsamle oplysningerne via websider, vise optegnelserne fra databasen og generere dynamiske websider ved hjælp af en container. Servlet er en Java klasse, der ikke er afhængig af platformen og yderligere kompileret til bytecode, som er platform-uafhængig. Den platform-neutrale bytecode kan gemmes og udføres dynamisk af Java Web-serveren. Servlet bruger socket og RMI mekanisme til at etablere forbindelsen mellem applets, databaser eller andre database programmer.
Servletbeholder er en del af webserveren, der understøtter HTTP- og HTTPS-protokoller . Den anvender anmodningen / svarmetoden ved hjælp af HTTP- og HTTPS-protokollen for at muliggøre interaktion med webklienter. I modsætning til CGI kører servlet inde i webserverens adresserum, hvor hver klient ikke nødvendigvis behandles separat. I servlet håndhæves en samling af begrænsninger på serveren for at beskytte ressourcerne på serveren.
Nøgleforskelle mellem CGI og Servlet
- CGI scripts er skrevet i native OS og gemt på den bestemte mappe. På den anden side skrives servlet programmer normalt i Java, som kompileres i Java bytecode og udføres i JVM.
- CGI er platformspecifik, hvilket gør det svært at skifte mellem operativsystemer. Modsat kan Servlets udføres i ethvert operativsystem, som har installeret JVM, og derfor er det platformuafhængigt.
- I CGI kan hver ankommer klientforespørgsel generere en separat proces, mens servlet, processer oprettes ikke unødvendigt og deler hukommelsespladsen til JVM.
- CGI-scripts er eksekverbare programmer, der er skrevet i serverens native OS. I modsætning hertil samles servlets til Java bytecode, der kører på JVM.
- Servlet er mere sikkert end CGI, da det bruger Java.
- Servlets hastighed, ydeevne og effektivitet er bedre end CGI.
- CGI-scripts kan behandles direkte. Tværtimod oversætter servleten først og kompilerer programmet og behandler det derefter.
- Når det kommer til portabilitet, er servlet bærbar, mens CGI ikke er.
Konklusion
CGI og Servlet fungerer på samme måde, men brugen af servlet er fordelagtig over CGI, da servlet er hurtig, sikker, platform uafhængig, let udviklet, tilgængelig via flere API'er og understøttet af forskellige webservere.