CGI ja Servlet

Anonim

CGI vs Servlet

CGI (Common Gateway Interface) on ensimmäinen yritys tarjota käyttäjille dynaamista sisältöä. Sen avulla käyttäjät voivat suorittaa palvelimessa sijaitsevan ohjelman tietojen käsittelemiseksi ja jopa käyttää tietokantoja asiaankuuluvan sisällön tuottamiseksi. Koska nämä ovat ohjelmia, ne kirjoitetaan natiiviin käyttöjärjestelmään ja tallennetaan sitten tiettyyn hakemistoon. Servlet on Java-ohjelman toteutus, jonka tarkoituksena on tarjota sama palvelu kuin CGI: lla, mutta sen sijaan, että ohjelmat kootaan natiiviin käyttöjärjestelmään, se kootaan Java-tavuokoodiksi, jota sitten käytetään Java-virtuaalikoneessa. Vaikka Java-ohjelmat voidaan koota alkuperäiseen koodiin, ne haluavat edelleen koota Java-tavutekoodiin.

Servlettien ensimmäinen etu CGI: n suhteen on alustan riippumattomuudella. Servletit voivat toimia missä tahansa käyttöjärjestelmässä niin kauan kuin JVM on asennettu, mikä tarkoittaa, että sinulla ei olisi mitään ongelmia, vaikka päätät vaihtaa käyttöjärjestelmiä. CGI: n avulla käyttöjärjestelmän vaihtaminen on vaikea ja työläs prosessi, sillä uudet käyttöjärjestelmät olisi yhdistettävä uudelleen.

Koska käytät CGI: ssä itsenäisiä ohjelmia, ne luovat oman prosessinsa suoritettaessa, mikä ei tapahdu servlettien kanssa, koska ne jakavat vain JVM: n muistitilan. Tämä voi johtaa ylimääräisiin kustannuksiin liittyviin ongelmiin, erityisesti silloin, kun lisäät käyttäjien määrää eksponentiaalisesti. Se myös luo haavoittuvuusongelmia, koska ohjelmaa ei ole millään tavoin hallinnassa, kun se suoritetaan palvelimella.

Myöhemmin yleisempi tapa käyttää CGI: tä on skriptit. Tämä vähentää ohjelmien luomiseen tarvittavaa aikaa ja on yleensä turvallisempaa. CGI: n avulla voit suorittaa komentosarjoja heti, kun taas servletit, sinun pitäisi kääntää käsikirjoitus Java: ksi ja kääntää se servletiksi, joka lisää vähän latausaikaan.

Yhteenveto: 1.CGI ovat yleensä suoritustiedostoja, jotka ovat kotoisia palvelimen käyttöjärjestelmään, vaikka servletit voidaan myös koota natiiviin käyttöjärjestelmään, se voidaan koota Java-tavuokoodiksi, joka sitten suoritetaan JVM: ssä 2.CGI-ohjelmat ovat alustasta riippuvaisia, kun taas servletit ovat foorumilta riippumattomia 3.CGI-ohjelmat toimivat erillisinä prosesseina tietokoneessa, kun palvelimet toimivat JVM: ssä 4.CGI voi olla haavoittuvampi kuin hyökkäykset kuin servletit 5.CGI voi suoraan käsitellä skriptejä, kun se on käännettävä ja koottu, ennen kuin se voidaan suorittaa servletinä