Vertailukaavio
Vertailun perusteet | CGI | Servlet |
---|---|---|
perustiedot | Ohjelmat on kirjoitettu alkuperäisessä käyttöjärjestelmässä. | Java-ohjelmat. |
Platform-riippuvuus | Platform riippuu | Ei luota alustaan |
Prosessin luominen | Jokainen asiakaspyyntö luo oman prosessin. | Prosessit luodaan asiakkaan pyynnön tyypin mukaan. |
Skriptin muuntaminen | Esitä suoritettavien tiedostojen muodossa (natiivi palvelimelle). | Käännetty Java Bytecode -ohjelmaan. |
Käy | Erillinen prosessi | JVM |
turvallisuus | Haavoittuvampia hyökkäyksiä vastaan. | Voi vastustaa hyökkäyksiä. |
Nopeus | hitaampi | nopeampi |
Käsikirjoituksen käsittely | Suoraan | Ennen skriptien suorittamista se käännetään ja kootaan. |
siirrettävyys | Ei voi siirtää | Kannettava |
Määritelmä CGI
CGI (Common Gateway Interface) on liitäntä, joka käsittelee web-palvelimen ulkoisia ohjelmia (CGI-komentosarjoja), jotta interaktiiviset verkkosivut voidaan suorittaa. CGI: n on kehittänyt NCSA (National Supercomputing Applications Center) vuonna 1993. Se sijaitsee palvelimen puolella ja mahdollistaa web-selainten vuorovaikutuksen Web-palvelimen ohjelmien kanssa. Jos esimerkiksi Web-sivu kysyy tietokantaa tai käyttäjä lähettää lomakkeen tiedot palvelimelle, CGI-komentosarjoja kutsutaan. Palvelin välittää nämä tiedot sovellukselle kahdella tavalla: GET tai POST, sovellus vastaa palvelimeen takaisin selaimeen. Näin selaimet saavat joitakin tuloksia käyttäjälle.
CGI on ehto, jossa kuvataan menetelmä CGI-komentosarjojen suorittamiseksi ja tulosten palauttamiseksi palvelimelle kyseisille ohjelmille. CGI: n tehtävänä on skannata selaimelta vastaanotetut tiedot ja tuottaa oikea vastaus, kun tehtävän suorittamisen jälkeen CGI-komentosarja lopetetaan. Common Gateway Interface -sovelluksessa yhteinen merkitsee sitä, että se voi toimia hienosti missä tahansa käyttöjärjestelmässä tai ohjelmointikielessä.
Aikaisemmin UNIX-komentosarjoja ja PERL: ää käytettiin CGI-ohjelmien kirjoittamiseen. Siksi se on nimetty CGI- skripteiksi . Mutta nyt voidaan käyttää mitä tahansa kieltä, kuten C, C ++, Perl, Visual Basic tai Python. Vaikka CGI voi johtaa mahdollisiin turvallisuuskysymyksiin, web-palvelin voi myös käsitellä suoritettavia tiedostoja CGI-ohjelmina joissakin erityisissä hakemistoissa. CGI käsittelee jokaisen asiakkaan pyynnön erillisellä prosessilla, joka lisää palvelimen kuormitusta ja tekee siitä hitaamman.
Määritelmä Servlet
Servlet on Java-pohjainen web-komponentti, joka toimii väliohjelmana, joka helpottaa web-selaimen tai HTTP-asiakkaan ja HTTP-palvelimen vuorovaikutusta. Samoin kuin CGI, servletit voidaan myös käyttää tietojen keräämiseen verkkosivuilla, näyttää tietokannan tietueet ja luoda dynaamisia verkkosivuja säiliön avulla. Servlet on Java-luokka, joka ei luota alustaan ja joka on edelleen koottu bytekoodiin, joka on alustasta riippumaton. Java-verkkopalvelin voi tallentaa ja suorittaa alustan neutraalin tavun koodin dynaamisesti. Servlet käyttää liitäntä- ja RMI- mekanismia yhteyksien muodostamiseksi sovelmien, tietokantojen tai muiden tietokantaohjelmien välille.
Servlet-kontti on osa WWW-palvelinta, joka tukee HTTP- ja HTTPS-protokollia . Se käyttää pyyntö- / vastausmenetelmää käyttämällä HTTP- ja HTTPS-protokollaa vuorovaikutuksen mahdollistamiseksi web-asiakkaiden kanssa. Toisin kuin CGI, servlet kulkee web-palvelimen osoitetilan sisällä, jossa kutakin asiakasta ei välttämättä käsitellä erikseen. Palvelimessa on palvelimella pakollisia resursseja, jotta palvelimen resurssit voidaan suojata.
CGI: n ja Servletin väliset erot
- CGI-skriptit on kirjoitettu natiivissa käyttöjärjestelmässä ja tallennettu tiettyyn hakemistoon. Toisaalta servlet-ohjelmat kirjoitetaan yleensä Java-muodossa, joka käännetään Java-bytecodeksi ja suoritetaan JVM: ssä.
- CGI on foorumi-erityinen, minkä vuoksi on vaikea vaihtaa käyttöjärjestelmiä. Sitä vastoin Servletit voidaan suorittaa missä tahansa käyttöjärjestelmässä, joka on asentanut JVM: n, joten se on alustasta riippumaton.
- CGI: ssä jokainen saapuva asiakaspyyntö voi luoda erillisen prosessin, kun servlet, prosessit eivät synny tarpeettomasti ja jakaa JVM: n muistitilan.
- CGI-skriptit ovat suoritettavia ohjelmia, jotka on kirjoitettu palvelimen alkuperäisessä käyttöjärjestelmässä. Sen sijaan servletit kootaan Java-tavuun, joka toimii JVM: llä.
- Servlet on turvallisempi kuin CGI, koska se käyttää Java-ohjelmaa.
- Servletin nopeus, suorituskyky ja tehokkuus on parempi kuin CGI.
- CGI-skriptejä voidaan käsitellä suoraan. Päinvastoin, servlet kääntää ja kääntää ensin ohjelman ja käsitellä sen.
- Siirrettävyyden osalta servlet on kannettava, kun taas CGI ei ole.
johtopäätös
CGI ja Servlet toimivat samalla tavalla, mutta servletin käyttö on edullista CGI: n suhteen, koska servlet on nopea, turvallinen, alustasta riippumaton, helposti kehitettävä, useiden sovellusliittymien kautta ja eri web-palvelinten tukemana.