CGI at Servlet

Anonim

CGI vs Servlet

Ang CGI (Common Gateway Interface) ay ang unang pagtatangka sa pagbibigay ng mga user sa dynamic na nilalaman. Pinapayagan nito ang mga gumagamit na magsagawa ng isang programa na namamalagi sa server upang maproseso ang data at kahit na ma-access ang mga database upang makagawa ng may-katuturang nilalaman. Dahil ang mga ito ay mga programa, ang mga ito ay nakasulat sa katutubong operating system at pagkatapos ay naka-imbak sa isang partikular na direktoryo. Ang isang servlet ay isang pagpapatupad ng Java na naglalayong magbigay ng parehong serbisyo tulad ng CGI, ngunit sa halip ng mga programa na pinagsama sa katutubong operating system, ito compiles sa Java bytecode na pagkatapos ay tatakbo sa Java virtual machine. Kahit na ang mga programa ng Java ay maaaring ipagsama sa katutubong code, mas gusto pa nila na sumulat ng libro sa Java bytecode.

Ang unang bentahe ng mga servlet sa CGI ay nasa platform na pagsasarili nito. Ang mga servlet ay maaaring tumakbo sa anumang operating system hangga't ang isang JVM ay na-install, na nangangahulugan na hindi ka magkakaroon ng anumang problema kahit na pinili mong lumipat sa mga operating system. Sa CGI, ang paglipat ng operating system ay isang mahirap at matrabaho na proseso tulad ng kakailanganin mong i-recompile ang mga programa sa bagong operating system.

Dahil ikaw ay nagpapatakbo ng mga independiyenteng programa sa CGI, lumikha sila ng kanilang sariling proseso kapag sila ay pinaandar, isang bagay na hindi nangyayari sa mga servlet habang nakikibahagi lamang sila sa memory space ng JVM. Ito ay maaaring humantong sa mga problema na may kaugnayan sa overhead, lalo na kapag pinataas mo ang bilang ng mga gumagamit exponentially. Ito rin ay lumilikha ng mga isyu sa kahinaan bilang ang programa ay hindi kontrolado sa anumang paraan sa sandaling ito ay tumakbo sa server.

Sa ibang pagkakataon, ang mas karaniwang pamamaraan kapag gumagamit ng CGI ay sa pamamagitan ng mga script. Binabawasan nito ang oras na kinakailangan sa paglikha ng mga programa at sa pangkalahatan ay mas ligtas. Sa CGI, maaari kang magpatakbo ng mga script kaagad, habang ang mga servlet, kakailanganin mong i-translate ang script sa Java at itala ito sa isang servlet na nagdaragdag ng kaunti sa oras ng paglo-load.

Buod: 1.CGI ay karaniwang executables na katutubong sa operating system ng server, kahit na servlets ay maaari ring pinagsama-sama sa katutubong OS maaari itong compiled sa Java bytecode na pagkatapos ay tumakbo sa isang JVM 2.CGI mga programa ay nakasalalay sa platform habang servlets ay platform independiyenteng 3. Ang mga programa ng CGI ay tumatakbo bilang magkahiwalay na mga proseso sa computer habang tumatakbo ang mga servlet sa JVM 4.CGI ay maaaring mas mahina sa pag-atake kaysa servlets 5.CGI ay maaaring direktang proseso ng mga script habang kailangan itong maisalin at pinagsama-sama sa bago ito maaaring tumakbo bilang isang servlet