Diferencia entre Java Servlet y CGI

El mundo ha cambiado hacia una primera era móvil, pero incluso hoy, ninguna de las aplicaciones podría emerger tan efectiva como las aplicaciones basadas en la web. Además de esto, surge la prevalencia de aplicaciones web progresivas que realizan funciones idénticas a las aplicaciones móviles. En este artículo, comprenderemos la diferencia entre las dos funcionalidades en las aplicaciones basadas en web, a saber, servlets y CGI. 

Servlet es una clase de Java que se utiliza para ampliar las capacidades de los servidores que alojan aplicaciones a las que se accede mediante un modelo de solicitud-respuesta. Los servlets se utilizan principalmente para ampliar las aplicaciones alojadas en servidores web, sin embargo, también pueden responder a otros tipos de requests. Para tales aplicaciones, las clases de servlet específicas de HTTP están definidas por la tecnología Java Servlet. Todos los programas de Servlets están escritos en JAVA y llegan a ejecutarse en JAVA Virtual Machine . La siguiente imagen describe cómo se atiende una solicitud de los clientes con la ayuda de subprocesos:

Common Gateway Interface(CGI): The Common Gateway Interface (CGI) provides the middleware between WWW servers and external databases and information sources. The World Wide Web Consortium (W3C) defined the Common Gateway Interface (CGI) and also defined how a program interacts with a HyperText Transfer Protocol (HTTP) server. The Web server typically passes the form information to a small application program that processes the data and may send back a confirmation message. This process or convention for passing data back and forth between the server and the application is called the common gateway interface (CGI). The following image describes how a web server acts as an intermediate between the CGI program and the client browser. 


The following table explains the difference between the servlet and CGI:

Base servlet CGI
Acercarse Se basa en subprocesos, es decir, para cada nueva solicitud se crea un nuevo subproceso. Se basa en procesos, es decir, para cada nueva solicitud se crea un nuevo proceso.
Idioma utilizado Los códigos están escritos en lenguaje de programación JAVA. Los códigos se escriben en cualquier lenguaje de programación.
Orientado a objetos  Dado que los códigos están escritos en Java, está orientado a objetos y el usuario obtendrá los beneficios de los OOP. Dado que los códigos están escritos en cualquier idioma, no todos los idiomas están basados ​​en subprocesos orientados a objetos. Por lo tanto, el usuario no obtendrá los beneficios de los OOP.
Portabilidad es portátil No es portátil.
Persistencia Permanece en la memoria hasta que no se destruye explícitamente. Se elimina de la memoria después de completar la solicitud basada en el proceso.
servidor independiente Puede utilizar cualquiera de los servidores web. Puede utilizar el servidor web que lo admite.
Compartir datos Es posible compartir datos. No es posible compartir datos.
Enlace Se vincula directamente con el servidor. No vincula el servidor web directamente al servidor.
servidor HTTP Puede leer y configurar servidores HTTP. No puede leer ni configurar servidores HTTP.
Costo La construcción y destrucción de nuevos subprocesos no son costosas.  La construcción y destrucción de los nuevos procesos son costosas. 
Velocidad  Su velocidad de lata es más lenta. Puede acelerar es más rápido.
Dependencia de la plataforma Puede depender de la plataforma Puede no depender de la plataforma.

Publicación traducida automáticamente

Artículo escrito por itskawal2000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *