Tablica usporedbe
Osnova za usporedbu | CGI | servlet |
---|---|---|
Osnovni, temeljni | Programi se pišu u izvornom OS-u. | Programi koji se koriste pomoću Jave. |
Zavisnost platforme | Ovisno o platformi | Ne oslanja se na platformu |
Stvaranje procesa | Svaki zahtjev klijenta stvara vlastiti proces. | Procesi se kreiraju ovisno o vrsti zahtjeva klijenta. |
Pretvorba skripte | Prisutni su u obliku izvršnih datoteka (izvornih na OS poslužitelju). | Sastavljen u Java bajtnu. |
Nastavlja se | Odvojeni proces | JVM |
sigurnosti | Više podložni napadima. | Može odoljeti napadima. |
Ubrzati | sporiji | Brže |
Obrada skripte | Direktno | Prije pokretanja skripti prevedeno je i kompilirano. |
pokretnost | Nije moguće prenijeti | prenosiv |
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
- 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.
- 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.
- U CGI-u svaki dolazni zahtjev klijenta može generirati poseban proces dok servlet, procesi nisu kreirani bespotrebno i dijele memorijski prostor JVM-a.
- 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.
- Servlet je sigurniji od CGI-a jer koristi Java.
- Brzina, performanse i učinkovitost servleta su bolji od CGI-ja.
- CGI skripte mogu se izravno obrađivati. Naprotiv, servlet najprije prevodi i kompilira program, a zatim ga obrađuje.
- 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.