Skirtumas tarp CGI ir Servlet

CGI vs Servlet

CGI (Common Gateway Interface) yra pirmasis bandymas suteikti vartotojams dinamišką turinį. Tai leidžia vartotojams vykdyti serveryje esančią programą, kad būtų galima apdoroti duomenis ir netgi pasiekti duomenų bazes, kad būtų sukurtas atitinkamas turinys. Kadangi tai yra programos, jos įrašomos gimtojoje operacinėje sistemoje ir saugomos konkrečiame kataloge. „Servlet“ yra „Java“ įgyvendinimas, kurio tikslas yra teikti tas pačias paslaugas, kurias teikia CGI, tačiau vietoj programų, sukompiliuotų gimtojoje operacinėje sistemoje, ji kaupiama „Java“ baitiniame kode, kuri tada paleista „Java“ virtualioje mašinoje. Nors „Java“ programas galima kompiliuoti į pradinį kodą, jos vis tiek renkasi kompiliuoti „Java“ baitų kodais.

Pirmasis servetėlių pranašumas, palyginti su CGI, yra jo platformos nepriklausomumas. Servletai gali veikti bet kurioje operacinėje sistemoje tol, kol yra įdiegtas JVM, o tai reiškia, kad neturėtumėte jokių problemų, net jei pasirinksite perjungti operacines sistemas. Naudodamiesi CGI, operacinės sistemos perjungimas yra sunkus ir daug darbo reikalaujantis procesas, nes jums reikės perkompiliuoti programas naujoje operacinėje sistemoje..

Kadangi jūs naudojate nepriklausomas programas CGI, jos sukuria savo procesą, kai jos vykdomos, o tai neatsitinka su servetėlėmis, nes jos tiesiog dalijasi JVM atmintyje. Tai gali sukelti problemų, susijusių su pridėtinėmis išlaidomis, ypač kai padidinate vartotojų skaičių eksponentiškai. Tai taip pat sukuria pažeidžiamumo problemas, nes programa niekaip nekontroliuojama, kai ji vykdoma serveryje.

Vėliau, naudojant CGI, dažniausiai naudojamas scenarijus. Tai sumažina programų kūrimui reikalingą laiką ir paprastai yra saugesni. Naudodamiesi CGI, scenarijus galite paleisti iš karto, o servetėlės ​​- scenarijų išverskite į „Java“ ir kompiliuokite jį į servitutą, kuris šiek tiek padidins krovimo laiką..

Santrauka:
1.CGI paprastai yra vykdomieji failai, kurie yra gimtoji serverio operacinėje sistemoje, nors servetėlės ​​taip pat gali būti kompiliuotos gimtojoje OS, jas galima kompiliuoti į „Java“ baitinį kodą, kuris tada paleistas JVM
2.CGI programos priklauso nuo platformos, o servetėlės ​​- nuo platformos
3.CGI programos veikia kaip atskiri procesai kompiuteryje, o servetėlės ​​veikia JVM
4.CGI gali būti labiau pažeidžiamos atakų nei servetėlės
5.CGI gali tiesiogiai apdoroti scenarijus, kol jis turi būti išverstas ir sukompiliuotas, kad jį būtų galima paleisti kaip servletą