Разлика између ЦГИ и Сервлет-а

ЦГИ вс Сервлет

ЦГИ (Цоммон Гатеваи Интерфаце) је први покушај да се корисницима омогући динамичан садржај. Омогућује корисницима да изврше програм који се налази на послужитељу за обраду података, па чак и приступ базама података како би се произвео релевантни садржај. Пошто су то програми, они се записују у нативни оперативни систем, а затим чувају у одређеном директорију. Сервлет је имплементација Јава која има за циљ да пружи исту услугу као и ЦГИ, али уместо програма компајлираних у матичном оперативном систему он се компајлира у Јава бајт код који се затим покреће у Јава виртуелној машини. Иако се програми Јава могу компајлирати у матични код, они ипак радије компилирају у Јава бајт коду.

Прва предност сервлета у односу на ЦГИ је његова независност од платформе. Сервлети се могу покретати на било ком оперативном систему све док је ЈВМ инсталиран, што значи да не бисте имали проблема чак и ако одлучите да пребаците оперативне системе. Код ЦГИ-а, пребацивање оперативног система је тежак и мукотрпан процес, јер би морали да компилирате програме у новом оперативном систему.

Пошто у ЦГИ покрећете независне програме, они креирају свој властити процес када се извршавају, што се не догађа са сервлетима, јер они само деле у меморијском простору ЈВМ-а. Ово може довести до проблема везаних за режијске трошкове, посебно када експоненцијално повећавате број корисника. Такође ствара проблеме са рањивошћу јер програм се ни на који начин не контролише након што се покрене на серверу.

Касније, чешћа метода када се користи ЦГИ је путем скрипти. То смањује време потребно за креирање програма и углавном су сигурније. Помоћу ЦГИ-а можете одмах покренути скрипте, док сервлети требате превести скрипту у Јава и компилирати је у сервлет што мало доприноси времену учитавања.

Резиме:
1.ЦГИ су обично извршне датотеке које су изворне за оперативни систем сервера, мада се сервлети такође могу компајлирати у матични ОС, могу се компилирати у Јава бајт код који се затим покреће на ЈВМ
2.ЦГИ програми зависе од платформе док су сервлети неовисни о платформи
3.ЦГИ програми покрећу се као засебни процеси на рачунару, док сервлети раде на ЈВМ
4.ЦГИ може бити рањивији од напада него сервлети
5.ЦГИ може директно обрађивати скрипте док их је потребно превести и компајлирати да би се могли покренути као сервлет