Preporučeno, 2019

Izbor Urednika

Razlika između CGI i Servleta

CGI i Servlet su programi koji se nalaze u webu ili aplikacijskom poslužitelju i pomažu u komunikaciji između web poslužitelja i preglednika (strani klijenta) kako bi generirali web sadržaj dinamički. CGI i servlet se mogu razlikovati jer rade na različite načine i imaju različitu funkcionalnost i značajke. Programi CGI (Common Gateway Interface) mogu se izraditi u izvornom OS-u i čuvati u određenom direktoriju. S druge strane, servlet je web-komponenta koja se općenito piše u Javi i izvodi u Java virtualnom stroju.

Tablica usporedbe

Osnova za usporedbuCGIservlet
Osnovni, temeljniProgrami se pišu u izvornom OS-u.Programi koji se koriste pomoću Jave.
Zavisnost platformeOvisno o platformiNe oslanja se na platformu
Stvaranje procesaSvaki zahtjev klijenta stvara vlastiti proces.Procesi se kreiraju ovisno o vrsti zahtjeva klijenta.
Pretvorba skriptePrisutni su u obliku izvršnih datoteka (izvornih na OS poslužitelju).Sastavljen u Java bajtnu.
Nastavlja seOdvojeni procesJVM
sigurnostiViše podložni napadima.Može odoljeti napadima.
UbrzatisporijiBrže
Obrada skripteDirektnoPrije pokretanja skripti prevedeno je i kompilirano.
pokretnostNije moguće prenijetiprenosiv

Definicija CGI

CGI (Common Gateway Interface) je sučelje koje upravlja vanjskim programima (CGI skriptama) na web poslužitelju kako bi omogućilo izvođenje interaktivnih web stranica. CGI je razvio NCSA (Nacionalni centar za superračunalne aplikacije) 1993. godine. Nalazi se na strani poslužitelja i omogućuje web preglednicima interakciju s programima na web poslužitelju. Na primjer, ako web-stranica upita bazu podataka ili korisnik u tom trenutku šalje podatke o obrascu poslužitelju, pozivaju se CGI skripte. Poslužitelj prosljeđuje te informacije aplikaciji na dva načina GET ili POST, a zatim aplikacija odgovara poslužitelju natrag pregledniku. Na taj način preglednici dobivaju neke rezultate za korisnika.

CGI je odredba kojom se opisuje metoda za pokretanje CGI skripti i vraćanje rezultata poslužitelju za te određene programe. Funkcija CGI-a je skeniranje informacija primljenih iz preglednika i stvaranje odgovarajućeg odgovora, nakon završetka zadatka CGI skripta se prekida. U Common Gateway sučelju, zajednički označava da može raditi dobro u bilo kojem operativnom sustavu ili programskom jeziku.

Nekada su za pisanje CGI programa korišteni UNIX shell skripte i PERL, zbog čega je nazvan CGI "skriptama" . No, sada se može koristiti bilo koji od jezika kao što su C, C ++, Perl, Visual Basic ili Python. Iako, CGI može voditi potencijalne sigurnosne probleme, jer web poslužitelj može tretirati izvršne datoteke kao CGI programe u nekim specifičnim direktorijima. CGI obrađuje svaki zahtjev klijenta zasebnim procesom koji povećava opterećenje poslužitelja što ga čini sporijim.

Definicija Servleta

Servlet je web-komponenta temeljena na Javi, djeluje kao posredni program koji olakšava interakciju između web preglednika ili HTTP klijenta i HTTP poslužitelja. Slično kao CGI, servleti se također mogu koristiti za prikupljanje informacija putem obrazaca web stranice, prikazivanje zapisa iz baze podataka i generiranje dinamičkih web stranica uz pomoć spremnika. Servlet je Java klasa koja se ne oslanja na platformu i dalje se kompajlira u bajt kod koji je neovisan o platformi. Platforma-neutralni bajt-kod može biti dinamički pohranjen i izvršen od Java Web poslužitelja. Servlet koristi socket i RMI mehanizam za uspostavljanje veze između apleta, baza podataka ili drugih programa baze podataka.

Servlet spremnik dio je web poslužitelja koji podržava HTTP i HTTPS protokole . Ona koristi zahtjev / odgovor metodom pomoću HTTP i HTTPS protokola kako bi omogućila interakciju s web klijentima. Za razliku od CGI-a, servlet se izvodi unutar adresnog prostora web-poslužitelja, gdje svaki klijent nije nužno tretiran odvojeno. U servletu se na poslužitelju nameće skup ograničenja kako bi se zaštitili resursi na poslužitelju.

Ključne razlike između CGI i Servleta

  1. CGI skripte su napisane u izvornom OS-u i pohranjene u određenom direktoriju. S druge strane, servlet programi se obično pišu u Javi koja se kompajlira u Java bytecode i izvršava u JVM-u.
  2. CGI je specifičan za platformu, što otežava prebacivanje između operacijskih sustava. Nasuprot tome, Servletovi se mogu izvršavati u bilo kojem operativnom sustavu koji ima instaliran JVM, stoga je neovisan o platformi.
  3. U CGI-u svaki dolazni zahtjev klijenta može generirati poseban proces dok servlet, procesi nisu kreirani bespotrebno i dijele memorijski prostor JVM-a.
  4. CGI skripte su izvršni programi pisani u izvornom OS poslužitelja. Nasuprot tome, servleti se kompajliraju u Java bajt kod koji se izvodi na JVM-u.
  5. Servlet je sigurniji od CGI-a jer koristi Java.
  6. Brzina, performanse i učinkovitost servleta su bolji od CGI-ja.
  7. CGI skripte mogu se izravno obrađivati. Naprotiv, servlet najprije prevodi i kompilira program, a zatim ga obrađuje.
  8. Kada je riječ o prenosivosti, servlet je prenosiv, dok CGI nije.

Zaključak

CGI i Servlet rade na isti način, ali korištenje servleta je povoljnije od CGI-ja jer je servlet brz, siguran, neovisan o platformi, lako razvijen, dostupan kroz nekoliko API-ja i podržan od raznih web poslužitelja.

Top