Цомпарисон Цхарт
Основа за поређење | ЦГИ | Сервлет |
---|---|---|
Басиц | Програми се пишу у изворном ОС-у. | Програми који користе Јаву. |
Зависност од платформе | Зависи од платформе | Не ослања се на платформу |
Стварање процеса | Сваки захтев клијента креира сопствени процес. | Процеси се креирају у зависности од типа захтева клијента. |
Конверзија скрипте | Присутан у облику извршних датотека (изворних на серверском ОС). | Компајлиран у Јава бајт код. |
Рунс он | Одвојени процес | ЈВМ |
Безбедност | Више подложни нападима. | Може да се одупре нападима. |
Брзина | Спорији | Брже |
Обрада сценарија | Директан | Пре покретања скрипти преведен је и компајлиран. |
Преносивост | Не може се преносити | Преносив |
Дефиниција ЦГИ
ЦГИ (Цоммон Гатеваи Интерфаце) је интерфејс који управља спољним програмима (ЦГИ скриптама) на веб серверу како би омогућио извршавање интерактивних веб страница. ЦГИ је развио НЦСА (Национални центар за суперрачунарске апликације) 1993. године. Налази се на страни сервера и омогућава веб претраживачима да комуницирају са програмима на веб серверу. На пример, ако веб страница упита базу података или корисник шаље информације о обрасцу серверу у том тренутку се позивају ЦГИ скрипте. Сервер преноси ту информацију апликацији на два начина ГЕТ или ПОСТ, а затим апликација одговара серверу на претраживач. На овај начин, претраживачи добијају неке резултате за корисника.
ЦГИ је одредба која описује метод за покретање ЦГИ скрипти и враћање резултата серверу за те одређене програме. Функција ЦГИ је да скенира информације примљене од претраживача и да произведе одговарајући одговор, након завршетка задатка ЦГИ скрипта се прекида. У Цоммон Гатеваи Интерфацеу, уобичајено означава да може добро функционисати у било којем оперативном систему или програмском језику.
Некада су УНИКС схелл скрипте и ПЕРЛ коришћени за писање ЦГИ програма, због чега је и назван ЦГИ „скриптама“ . Али, сада се може користити било који од језика као што су Ц, Ц ++, Перл, Висуал Басиц или Питхон. Иако, ЦГИ може водити потенцијалне сигурносне проблеме, јер веб сервер може третирати извршне датотеке као ЦГИ програме у неким специфичним директоријима. ЦГИ обрађује сваки захтев клијента одвојеним процесом који повећава оптерећење сервера што га чини споријим.
Дефиниција Сервлета
Сервлет је веб-компонента заснована на Јави која служи као посредни програм који олакшава интеракцију између веб прегледника или ХТТП клијента и ХТТП сервера. Слично као и ЦГИ, сервлети се такође могу користити за прикупљање информација путем образаца веб странице, приказивање записа из базе података и генерисање динамичких веб страница уз помоћ контејнера. Сервлет је Јава класа која се не ослања на платформу и даље компајлира у бајт-код који је независан од платформе. Платформски неутрални бајтни код може бити динамички похрањен и извршен од стране Јава Веб сервера. Сервлет користи соцкет и РМИ механизам за успостављање везе између аплета, база података или других програма базе података.
Сервлет контејнер је део веб сервера који подржава ХТТП и ХТТПС протоколе . Она користи методу захтев / одговор користећи ХТТП и ХТТПС протокол да омогући интеракцију са веб клијентима. За разлику од ЦГИ, сервлет се покреће унутар адресног простора веб сервера, при чему сваки клијент није нужно третиран одвојено. У сервлету се на серверу примењује колекција ограничења која штите ресурсе на серверу.
Кључне разлике између ЦГИ и Сервлета
- ЦГИ скрипте се пишу у изворном ОС-у и складиште у одређеном директорију. С друге стране, сервлет програми се обично пишу у Јави која се компајлира у Јава битецоде и извршава у ЈВМ-у.
- ЦГИ је специфичан за платформу, што отежава пребацивање између оперативних система. Насупрот томе, Сервлети се могу извршити у сваком оперативном систему који има инсталиран ЈВМ, те је стога независан од платформе.
- У ЦГИ сваком долазном захтеву клијента може се генерисати посебан процес док се сервлет, процеси не креирају беспотребно и деле меморијски простор ЈВМ-а.
- ЦГИ скрипте су извршни програми написани у изворном ОС-у сервера. Насупрот томе, сервлети се компајлирају у Јава бајткод који ради на ЈВМ-у.
- Сервлет је сигурнији од ЦГИ-ја јер користи Јава.
- Брзина, перформансе и ефикасност сервлета су бољи од ЦГИ.
- ЦГИ скрипте се могу директно обрађивати. Напротив, сервлет прво преводи и компилира програм, а затим га обрађује.
- Када је у питању преносивост, сервлет је преносив док ЦГИ није.
Закључак
ЦГИ и Сервлет раде на исти начин, али употреба сервлета има предност над ЦГИ-јем, јер је сервлет брз, сигуран, независан од платформе, лако развијен, доступан кроз неколико АПИ-ја и подржан од разних веб сервера.