Palyginimo diagrama
Palyginimo pagrindas | CGI | Servletas |
---|---|---|
Pagrindinis | Programos yra parašytos gimtojoje OS. | Programos, naudojamos naudojant „Java“. |
Platformos priklausomybė | Nuo platformos priklauso | Nereikia pasikliauti platforma |
Proceso kūrimas | Kiekvienas kliento prašymas sukuria savo procesą. | Procesai kuriami priklausomai nuo kliento užklausos tipo. |
Scenarijos konvertavimas | Pateikiama vykdytinų (gimtoji serverio OS) forma. | Sudarytas „Java Bytecode“. |
Veikia | Atskiras procesas | JVM |
Saugumas | Daugiau pažeidžiamų atakų. | Gali atsispirti atakoms. |
Greitis | Lėtesnis | Greičiau |
Scenarijaus apdorojimas | Tiesioginis | Prieš paleisdamas scenarijus jis išverstas ir sudaromas. |
Perkeliamumas | Negalima perkelti | Nešiojami |
CGI apibrėžimas
CGI (Common Gateway Interface) yra sąsaja, kuri tvarko išorines programas (CGI scenarijus) žiniatinklio serveryje, kad būtų galima atlikti interaktyvius tinklalapius. CGI sukūrė NCSA (Nacionalinis superkompiuterių taikomųjų programų centras) 1993 metais. Jis gyvena serverio pusėje ir leidžia naršyklėms bendrauti su žiniatinklio serverio programomis. Pavyzdžiui, jei žiniatinklio puslapis užklausa duomenų bazę arba vartotojas tuo metu pateikia serverio informaciją, CGI scenarijai yra naudojami. Serveris perduoda šią informaciją programai dviem būdais: GET arba POST, tada programa atsako į serverį atgal į naršyklę. Tokiu būdu naršyklės vartotojui pateikia tam tikrus rezultatus.
CGI yra nuostata, skirta aprašyti metodą, skirtą CGI scenarijų paleidimui ir rezultatų grąžinimui serveriui toms konkrečioms programoms. CGI funkcija yra nuskaityti iš naršyklės gautą informaciją ir pateikti tinkamą atsakymą, baigus užduotį, CGI scenarijus nutraukiamas. Bendrosios sąsajos sąsajoje bendras reiškia, kad jis gali veikti gerai bet kurioje operacinėje sistemoje ar programavimo kalba.
Anksčiau „UNIX shell“ scenarijai ir „PERL“ buvo naudojami CGI programoms rašyti, tai yra priežastis, dėl kurios ji buvo pavadinta „CGI “ skriptais . Tačiau dabar galima naudoti bet kurią iš tokių kalbų kaip C, C ++, Perl, Visual Basic arba Python. Nors CGI gali sukelti galimas saugumo problemas, kadangi žiniatinklio serveris gali apdoroti vykdomuosius failus kaip CGI programas tam tikruose konkrečiuose kataloguose. CGI tvarko kiekvieną kliento užklausą atskiru procesu, kuris padidina serverio apkrovą, todėl jis tampa lėčiau.
Servleto apibrėžimas
Servletas yra „Java“ pagrįstas žiniatinklio komponentas, veikiantis kaip tarpinė programa, palengvinanti žiniatinklio naršyklės arba HTTP kliento ir HTTP serverio sąveiką. Panašiai kaip ir CGI, servletai taip pat gali būti naudojami rinkti informaciją pagal tinklalapio formas, parodyti įrašus iš duomenų bazės ir generuoti dinaminius tinklalapius konteinerio pagalba. „Servlet“ yra „Java“ klasė, kuri nesiremia platforma ir toliau sukompiliuota į bytekodą, kuris yra nepriklausomas nuo platformos. „Java“ žiniatinklio serveris gali dinamiškai saugoti platformos neutralų bytekodą. Servletas naudoja lizdą ir RMI mechanizmą, kad nustatytų ryšį tarp programėlių, duomenų bazių ar kitų duomenų bazių programų.
Servletinis konteineris yra interneto serverio dalis, palaikanti HTTP ir HTTPS protokolus . Jis naudoja užklausos / atsakymo metodą, naudodamas HTTP ir HTTPS protokolą, kad įgalintų sąveiką su žiniatinklio klientais. Skirtingai nuo CGI, servletas veikia interneto serverio adresų erdvėje, kur kiekvienas klientas nebūtinai tvarkomas atskirai. Servete serveryje yra įdiegta suvaržymų, skirtų apsaugoti serverio išteklius, rinkinys.
Pagrindiniai skirtumai tarp CGI ir Servlet
- CGI scenarijai yra parašyti gimtojoje operacinėje sistemoje ir saugomi tam tikrame kataloge. Kita vertus, servletų programos paprastai yra parašytos „Java“, kuri yra kompiliuojama į „Java bytecode“ ir vykdoma JVM.
- „CGI“ yra specifinė platforma, dėl kurios sunku perjungti operacines sistemas. Priešingai, Servletai gali būti vykdomi bet kurioje operacinėje sistemoje, kuri įdiegė JVM, todėl ji yra nepriklausoma nuo platformos.
- CGI kiekvienas atvykstantis kliento prašymas gali generuoti atskirą procesą, o servletas, procesai nėra sukurti be reikalo ir dalijasi JVM atminties vieta.
- CGI scenarijai yra vykdomosios programos, parašytos serverio vietinėje operacinėje sistemoje. Priešingai, servletai yra sukompiliuoti į „Java bytecode“, kuris veikia JVM.
- Servlet yra saugesnis už CGI, nes jis naudoja „Java“.
- Servleto greitis, našumas ir efektyvumas yra geresni nei CGI.
- CGI scenarijus galima tiesiogiai apdoroti. Priešingai, servletas pirmiausia verčia ir kompiliuoja programą, tada ją apdoroja.
- Kai kalbama apie perkeliamumą, servletas yra nešiojamas, o CGI nėra.
Išvada
„CGI“ ir „Servlet“ veikia taip pat, tačiau servleto naudojimas yra naudingas CGI, nes servletas yra greitas, saugus, nepriklausomas nuo platformos, lengvai sukurtas, prieinamas per kelis API ir palaikomas įvairių interneto serverių.