Jämförelsediagram
Grunder för jämförelse | CGI | Servlet |
---|---|---|
Grundläggande | Programmen är skrivna i det inbyggda operativsystemet. | Program som används med Java. |
Plattformsberoende | Plattformberoende | Lita inte på plattformen |
Skapande av process | Varje klientförfrågan skapar en egen process. | Processer skapas beroende på typen av klientförfrågan. |
Konvertering av manuset | Presentera i form av körbara filer (inbyggda i serverns operativsystem). | Kompilerad till Java Bytecode. |
Går på | Separat process | JVM |
säkerhet | Mer utsatta för attacker. | Kan motstå attacker. |
Fart | långsam~~POS=TRUNC | Snabbare |
Bearbetning av manus | Direkt | Innan scripten körs översätts den och sammanställs. |
portabilitet | Kan inte portas | Bärbar |
Definition av CGI
CGI (Common Gateway Interface) är ett gränssnitt som hanterar externa program (CGI-skript) på en webbserver för att möjliggöra genomförandet av de interaktiva webbsidorna. CGI utvecklades av NCSA (National Center for Supercomputing Applications) 1993. Det finns på serverns sida och gör att webbläsare kan interagera med program på webbservern. Till exempel, om en webbsida frågar en databas eller en användare skickar formulärinformationen till servern vid den tiden aktiveras CGI-skript. Servern skickar den informationen till en applikation på två sätt GET eller POST, sedan svarar programmet på servern tillbaka till webbläsaren. På så sätt får webbläsare några resultat för användaren.
CGI är en bestämmelse för att beskriva en metod för att köra CGI-skript och ge resultaten tillbaka till servern för de specifika programmen. Funktionen hos en CGI är att skanna informationen som mottas från webbläsaren och ge ett korrekt svar. Efter avslutad uppgift avslutas CGI-skriptet. I Common Gateway Interface betyder det vanliga att det kan fungera bra i alla operativsystem eller programmeringsspråk.
Tidigare användes UNIX-skalskript och PERL för att skriva CGI-programmen, det är anledningen till att det heter CGI- skript . Men nu kan något av språken som C, C ++, Perl, Visual Basic eller Python användas. Även om CGI kan leda till potentiella säkerhetsproblem, eftersom webbservern också kan behandla körbara filer som CGI-program i vissa specifika kataloger. CGI hanterar varje kundförfrågan med en separat process som ökar serverns belastning vilket gör det långsammare.
Definition av Servlet
En Servlet är en Java-baserad webbkomponenthandling som ett mellanprogram som underlättar interaktionen mellan webbläsaren eller HTTP-klienten och HTTP-servern. På samma sätt som CGI kan servlets också användas för att samla informationen via webbformulär, visa poster från databasen och skapa dynamiska webbsidor med hjälp av en behållare. Servlet är en Java-klass som inte bygger på plattformen och vidare kompileras till bytekoden som är plattformoberoende. Den plattformsneutrala bytekoden kan lagras och exekveras av Java-webbservern. Servlet använder socket och RMI- mekanism för att upprätta anslutningen mellan applets, databaser eller andra databasprogram.
Servletbehållare är en del av webbservern som stöder HTTP- och HTTPS-protokoll . Den använder begäran / svarmetoden genom att använda HTTP och HTTPS-protokoll för att möjliggöra interaktion med webbklienter. Till skillnad från CGI kör servlet inuti adressrummet på webbservern där varje klient inte nödvändigtvis behandlas separat. I servletet verkställs en samling begränsningar på servern för att skydda resurserna på servern.
Viktiga skillnader mellan CGI och Servlet
- CGI-skript är skrivna i inbyggda operativsystem och lagrade på den specifika katalogen. Å andra sidan skrivs servletprogram vanligtvis i Java som kompileras till Java bytecode och exekveras i JVM.
- CGI är plattformsspecifik vilket gör det svårt att byta mellan operativsystem. Däremot kan Servlets utföras i vilket operativsystem som har installerat JVM, så det är plattformoberoende.
- I CGI kan varje ankommande klientförfrågan generera en separat process medan servlet, processer skapas inte onödigt och dela minnesutrymmet i JVM.
- CGI-skript är exekverbara program skrivna i serverens inbyggda operativsystem. Däremot kompileras servlets till Java bytecode som körs på JVM.
- Servlet är säkrare än CGI eftersom det använder Java.
- Servlets hastighet, prestanda och effektivitet är bättre än CGI.
- CGI-skript kan behandlas direkt. Tvärtom översätter servleten först och sammanställer programmet sedan bearbetar det.
- När det gäller portabilitet är servlet bärbart medan CGI inte är.
Slutsats
CGI och Servlet fungerar på samma sätt, men användningen av servlet är fördelaktig över CGI eftersom servlet är snabbt, säkert, plattformsoberoende, enkelt utvecklat, tillgängligt via flera API och stöds av olika webbservrar.