CGI i Servlet

Anonim

CGI vs Servlet

CGI (Common Gateway Interface) prvi je pokušaj pružanja korisnicima dinamički sadržaj. To korisnicima omogućuje izvršavanje programa koji se nalazi na poslužitelju za obradu podataka, pa čak i pristup podacima kako bi se stvorio relevantan sadržaj. Budući da su to programi, oni su napisani u izvornom operacijskom sustavu i zatim pohranjeni u određenom direktoriju. Servlet je implementacija Java koja nastoji pružiti istu uslugu kao i CGI, ali umjesto programa sastavljenih u izvornom operacijskom sustavu, sastavlja se u Java bajtkod koji se zatim pokreće u Java virtualnom stroju. Iako se Java programi mogu sastaviti u izvornom kodu, oni još uvijek vole sastaviti u Java bytecode.

Prva prednost servleta nad CGI je u neovisnosti platforme. Servleti mogu raditi na bilo kojem operativnom sustavu sve dok je instaliran JVM, što znači da ne biste imali nikakvih problema čak i ako odlučite prebaciti operacijske sustave. S CGI-om, prebacivanje operativnog sustava je težak i naporan proces jer ćete morati ponovno kompajlirati programe u novom operativnom sustavu.

Budući da pokrenete nezavisne programe u CGI-u, oni stvaraju vlastiti proces kada se izvršavaju, što se ne događa s servletima jer dijele samo memorijski prostor JVM-a. To može dovesti do problema koji se odnose na pretek, osobito kada povećavate broj korisnika eksponencijalno. Ona također stvara probleme s ranjivostima jer se program ne kontrolira ni na koji način nakon što se pokrene na poslužitelju.

Kasnije, češći način upotrebe CGI-ja je putem skripti. To smanjuje vrijeme potrebno za izradu programa i općenito je sigurnije. S CGI-om, možete pokrenuti skripte odmah, a servlete, trebate prevesti skriptu u Java i sastaviti je u servlet koji dodaje malo vremena učitavanja.

Sažetak: 1.CGI obično su izvršne datoteke koje su izvorne na operacijskom sustavu poslužitelja, iako servleti mogu biti sastavljeni i na izvorni OS koji se mogu sastaviti na Java bajtkodak koji se zatim izvodi na JVM 2.CGI programi su ovisni o platformi, a servleti su neovisni o platformi 3.CGI programi se izvode kao zasebni procesi na računalu dok servleti rade na JVM-u 4.CGI može biti podložniji napadima od servleta 5.CGI može izravno obraditi skripte dok je potrebno prevesti i sastaviti prije nego što se može pokrenuti kao servlet