Priporočena, 2020

Izbira Urednika

Razlika med CGI in Servletom

CGI in Servlet so programi, ki se nahajajo v spletnem ali aplikacijskem strežniku in pomagajo pri komunikaciji med spletnim strežnikom in brskalnikom (stranko odjemalca) za dinamično generiranje spletne vsebine. CGI in servlet je mogoče razlikovati, ker delujejo na različne načine in imajo različno funkcionalnost in funkcije. Programi CGI (Common Gateway Interface) se lahko oblikujejo v domačem OS in se hranijo v določenem imeniku. Po drugi strani pa je servlet spletna komponenta, ki je na splošno napisana v Javi in ​​se izvaja v navideznem Java stroju.

Primerjalna tabela

Podlaga za primerjavoCGIServlet
OsnovnoProgrami so napisani v izvornem OS.Programi, ki se uporabljajo z uporabo Jave.
Odvisnost od platformeOdvisna od platformeNe zanaša se na ploščad
Ustvarjanje procesaVsaka zahteva odjemalca ustvari lasten proces.Procesi se ustvarijo glede na vrsto zahteve odjemalca.
Pretvorba scenarijaPrisotni v obliki izvedljivih datotek (izvirni za strežniški operacijski sistem).Prevedeno v Java bajtno kodo.
Teče naprejLočen postopekJVM
VarnostBolj ranljivi za napade.Lahko se upre napadom.
HitrostPočasnejeHitreje
Obdelava scenarijaNeposrednoPred zagonom skriptov se prevede in prevede.
PrenosljivostPrenos ni mogočePrenosni

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Servlet je varnejši kot CGI, saj uporablja Javo.
  6. Hitrost, zmogljivost in učinkovitost servleta je boljša od CGI.
  7. CGI skripte je mogoče neposredno obdelati. Nasprotno, servlet najprej prevede in prevede program in ga nato obdeluje.
  8. 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.

Top