Primerjalna tabela
Podlaga za primerjavo | CGI | Servlet |
---|---|---|
Osnovno | Programi so napisani v izvornem OS. | Programi, ki se uporabljajo z uporabo Jave. |
Odvisnost od platforme | Odvisna od platforme | Ne zanaša se na ploščad |
Ustvarjanje procesa | Vsaka zahteva odjemalca ustvari lasten proces. | Procesi se ustvarijo glede na vrsto zahteve odjemalca. |
Pretvorba scenarija | Prisotni v obliki izvedljivih datotek (izvirni za strežniški operacijski sistem). | Prevedeno v Java bajtno kodo. |
Teče naprej | Ločen postopek | JVM |
Varnost | Bolj ranljivi za napade. | Lahko se upre napadom. |
Hitrost | Počasneje | Hitreje |
Obdelava scenarija | Neposredno | Pred zagonom skriptov se prevede in prevede. |
Prenosljivost | Prenos ni mogoče | Prenosni |
Opredelitev CGI
CGI (Common Gateway Interface) je vmesnik, ki obravnava zunanje programe (CGI skripte) na spletnem strežniku, da omogoči izvajanje interaktivnih spletnih strani. CGI je razvil NCSA (Nacionalni center za superračunalniške aplikacije) leta 1993. Nahaja se na strani strežnika in omogoča spletnim brskalnikom interakcijo s programi na spletnem strežniku. Na primer, če spletna stran poizveduje bazo podatkov ali uporabnik v tem času pošlje podatke o obliki na strežnik, se prikliče skripte CGI. Strežnik posreduje te informacije aplikaciji na dva načina GET ali POST, nato pa se aplikacija odzove na strežnik nazaj v brskalnik. Na ta način brskalniki za uporabnika dobijo nekaj rezultatov.
CGI je pogoj za opis metode za izvajanje skriptov CGI in zagotavljanje rezultatov nazaj na strežnik za te določene programe. Funkcija CGI je, da skenira informacije, ki jih prejme od brskalnika, in ustvari ustrezen odgovor, po zaključku naloge se skript CGI prekine. V Common Gateway Interface, skupno pomeni, da lahko deluje v vsakem operacijskem sistemu ali programskem jeziku.
Prej so bili za pisanje programov CGI uporabljeni skripti lupine UNIX in PERL, zato so ga imenovali »skripte« CGI. Vendar pa je zdaj mogoče uporabiti vse jezike, kot so C, C ++, Perl, Visual Basic ali Python. Čeprav lahko CGI vodi potencialne varnostne težave, lahko spletni strežnik obravnava tudi izvedljive datoteke kot programe CGI v nekaterih posebnih mapah. CGI obravnava vsako zahtevo odjemalca z ločenim procesom, ki poveča obremenitev strežnika, zaradi česar je počasnejši.
Opredelitev Servleta
Servlet je spletna komponenta, ki temelji na javi in deluje kot vmesni program, ki omogoča interakcijo med spletnim brskalnikom ali HTTP odjemalcem in strežnikom HTTP. Podobno kot pri CGI se lahko strežniki uporabljajo tudi za zbiranje informacij po spletnih straneh, prikaz podatkov iz baze podatkov in ustvarjanje dinamičnih spletnih strani s pomočjo vsebnika. Servlet je razred Java, ki se ne zanaša na platformo in se nato prevede v bajtno kodo, ki je neodvisna od platforme. Java-strežnik Java lahko dinamično shrani in izvrši bajtno kodo, ki je nevtralna za platformo. Servlet uporablja mehanizem vtičnice in RMI za vzpostavitev povezave med programčki, podatkovnimi bazami ali drugimi programi baze podatkov.
Servlet vsebnik je del spletnega strežnika, ki podpira protokole HTTP in HTTPS . Uporablja metodo zahtev / odgovorov z uporabo protokola HTTP in HTTPS, da omogoči interakcijo s spletnimi odjemalci. Za razliko od CGI, strežniški programček teče znotraj naslovnega prostora spletnega strežnika, pri čemer vsak odjemalec ni nujno obravnavan ločeno. V strežniškem programčku se na strežniku uvede zbirka omejitev za zaščito virov na strežniku.
Ključne razlike med CGI in Servletom
- CGI skripte so napisane v izvornem OS in shranjene v določenem imeniku. Po drugi strani so programi strežniškega programja običajno napisani v Javi, ki se prevede v bajtno kodo Java in izvrši v JVM.
- CGI je specifičen za platformo, zaradi česar je težko preklapljati med operacijskimi sistemi. V nasprotju s tem se lahko Servlets izvedejo v katerem koli operacijskem sistemu, ki ima nameščen JVM, zato je neodvisen od platforme.
- V CGI lahko vsaka odjemajoča se zahteva odjemalca ustvari ločen proces, medtem ko servlet, procesi niso ustvarjeni po nepotrebnem in delijo pomnilniški prostor JVM.
- CGI skripti so izvršljivi programi, napisani v izvornem OS strežnika. Nasprotno pa so strežniški programčki prevedeni v bajtno kodo Java, ki se izvaja na JVM.
- Servlet je varnejši kot CGI, saj uporablja Javo.
- Hitrost, zmogljivost in učinkovitost servleta je boljša od CGI.
- CGI skripte je mogoče neposredno obdelati. Nasprotno, servlet najprej prevede in prevede program in ga nato obdeluje.
- Ko gre za prenosljivost, je servlet prenosen, medtem ko CGI ni.
Zaključek
CGI in Servlet delujeta na enak način, vendar je uporaba servleta ugodnejša od CGI, saj je strežniški programček hiter, varen, neodvisen od platforme, zlahka razvit, dostopen prek več API-jev in ga podpirajo različni spletni strežniki.