Препоръчано, 2024

Избор На Редактора

Разлика между CGI и Servlet

CGI и Servlet са програми, които се намират в мрежата или сървъра на приложения и подпомагат комуникацията между уеб сървъра и браузъра (клиентската страна) за генериране на уеб съдържание динамично. CGI и сервлетът могат да бъдат диференцирани, защото работят по различен начин и имат различна функционалност и функции. Програмите CGI (Common Gateway Interface) могат да бъдат проектирани в родната ОС и да се съхраняват в определена директория. От друга страна, сървлетът е уеб компонент, който обикновено се пише на Java и се изпълнява в Java виртуална машина.

Сравнителна таблица

Основа за сравнениеCGIServlet
ОсновенПрограмите са написани в родната ОС.Програми, използвани чрез Java.
Зависимост на платформатаОт платформата зависиНе разчита на платформата
Създаване на процесВсяко клиентско искане създава свой собствен процес.Процесите се създават в зависимост от типа на клиентската заявка.
Преобразуване на скриптаПрисъства под формата на изпълними файлове (вградени в сървърната операционна система).Съставен с байтовия код на Java.
ПродължаваОтделен процесJVM
СигурностПо-уязвими към атаки.Може да устои на атаките.
скоростПо-бавноПо-бързо
Обработка на скриптДиректенПреди да стартирате скриптовете, той се превежда и компилира.
преносимостНе може да бъде пренесенпортативен

Дефиниция на CGI

CGI (Common Gateway Interface) е интерфейс, който обработва външни програми (CGI скриптове) на уеб сървър, за да позволи изпълнението на интерактивните уеб страници. CGI е разработен от NCSA (Национален център за суперкомпютърни приложения) през 1993 г. Той се намира в сървърната част и позволява на уеб браузърите да си взаимодействат с програми на уеб сървъра. Например, ако дадена уеб страница запитва база данни или потребителят подава информацията за формуляра на сървъра по това време, се извикват CGI скриптове. Сървърът предава тази информация на приложение по два начина GET или POST, след което приложението отговаря на сървъра обратно към браузъра. По този начин браузърите получават някои резултати за потребителя.

CGI е условие за описване на метод за изпълнение на CGI скриптове и предоставяне на резултатите обратно на сървъра за тези конкретни програми. Функцията на CGI е да сканира информацията, получена от браузъра и да даде правилен отговор, след приключване на задачата CGI скриптът се прекратява. В Common Gateway Interface, общото означава, че може да работи добре във всяка операционна система или език за програмиране.

По-рано, скриптовете на UNIX shell и PERL бяха използвани за писане на CGI програмите, поради което се наричаха CGI „скриптове“ . Но сега може да се използва всеки от езиците като C, C ++, Perl, Visual Basic или Python. Въпреки че CGI може да доведе до потенциални проблеми със сигурността, тъй като уеб сървърът може да третира изпълними файлове като CGI програми в някои специфични директории. CGI обработва всяко клиентско запитване чрез отделен процес, който увеличава натоварването на сървъра, което го прави по-бавен.

Определение на сервлет

Servlet е уеб-базиран уеб компонент, който действа като междинна програма, която улеснява взаимодействието между уеб браузъра или HTTP клиента и HTTP сървъра. Подобно на CGI, сервлетите могат да се използват и за събиране на информация чрез формулярите на уеб страниците, показване на записите от базата данни и генериране на динамични уеб страници с помощта на контейнер. Servlet е Java клас, който не разчита на платформата и допълнително се компилира към байтовия код, който е независим от платформата. Бай-кодът, неутрален от платформата, може да се съхранява динамично и да се изпълнява от Java Web сървъра. Servlet използва Socket и RMI механизъм за установяване на връзка между аплети, бази данни или други програми за бази данни.

Контейнерът Servlet е част от уеб сървър, който поддържа HTTP и HTTPS протоколи . Той използва метода за заявка / отговор, като използва HTTP и HTTPS протокол, за да даде възможност за взаимодействие с уеб клиенти. За разлика от CGI, сървлетът се изпълнява вътре в адресното пространство на уеб сървъра, където всеки клиент не е задължително да се разглежда отделно. В сървлета се налага набор от ограничения на сървъра за защита на ресурсите на сървъра.

Ключови разлики между CGI и Servlet

  1. CGI скриптовете се пишат в родната ОС и се съхраняват в определена директория. От друга страна, сервлет програми обикновено се пишат на Java, която се компилира в Java байткод и се изпълнява в JVM.
  2. CGI е специфична платформа, което прави трудно превключването между операционните системи. В сравнение със Servlets може да се изпълнява във всяка операционна система, която е инсталирала JVM, следователно тя е независима от платформата.
  3. В CGI всяка пристигаща клиентска заявка може да генерира отделен процес, докато сървлетът, процесите не се създават излишно и споделят паметта на JVM.
  4. CGI скриптовете са изпълними програми, написани на родната ОС на сървъра. Обратно, сервлетите се компилират в байтовия Java, който се изпълнява на JVM.
  5. Servlet е по-сигурен от CGI, тъй като използва Java.
  6. Скоростта, производителността и ефективността на сервлета са по-добри от CGI.
  7. CGI скриптовете могат да се обработват директно. Напротив, сървлетът първо превежда и компилира програмата, след което я обработва.
  8. Когато става въпрос за преносимост, сървлетът е преносим, ​​докато CGI не е такъв.

заключение

CGI и Servlet работят по същия начин, но използването на сервлета е изгодно пред CGI, тъй като сървлетът е бърз, сигурен, независим от платформа, лесно разработен, достъпен чрез няколко API и се поддържа от различни уеб сървъри.

Top