Recommandé, 2024

Choix De L'Éditeur

Différence entre CGI et Servlet

CGI et Servlet sont les programmes qui résident dans le serveur Web ou le serveur d'applications et facilitent la communication entre le serveur Web et le navigateur (côté client) pour générer le contenu Web de manière dynamique. Les CGI et les servlets peuvent être différenciés car ils fonctionnent de différentes manières et ont des fonctionnalités et des fonctionnalités distinctes. Les programmes CGI (Common Gateway Interface) peuvent être conçus dans le système d'exploitation natif et conservés dans un répertoire particulier. D'autre part, le servlet est un composant Web généralement écrit en Java et exécuté sur une machine virtuelle java.

Tableau de comparaison

Base de comparaisonCGIServlet
De baseLes programmes sont écrits dans le système d'exploitation natif.Programmes employés utilisant Java.
Dépendance de la plateformeDépend de la plateformeNe compte pas sur la plate-forme
Création de processusChaque demande client crée son propre processus.Les processus sont créés en fonction du type de demande client.
Conversion du scriptPrésent sous forme d'exécutables (natif du système d'exploitation du serveur).Compilé en Java Bytecode.
Fonctionne surProcessus séparéJVM
SécuritéPlus vulnérable aux attaques.Peut résister aux attaques.
La vitesseRalentissezplus rapide
Traitement du scriptDirectAvant d'exécuter les scripts, il est traduit et compilé.
PortabilitéNe peut pas être portéPortable

Définition de CGI

CGI (Common Gateway Interface) est une interface qui gère des programmes externes (scripts CGI) sur un serveur Web afin de permettre l’exécution des pages Web interactives. CGI a été développé par le NCSA (Centre national des applications de superinformatique) en 1993. Il réside du côté du serveur et permet aux navigateurs Web d’interagir avec les programmes du serveur Web. Par exemple, si une page Web interroge une base de données ou si un utilisateur envoie les informations de formulaire au serveur, les scripts CGI sont appelés. Le serveur transmet ces informations à une application de deux manières GET ou POST, puis l'application répond au serveur par la suite. De cette façon, les navigateurs obtiennent des résultats pour l'utilisateur.

CGI est une stipulation qui décrit une méthode pour exécuter des scripts CGI et fournit les résultats au serveur pour ces programmes particuliers. La fonction d'un CGI est d'analyser les informations reçues du navigateur et de produire une réponse appropriée. Une fois la tâche terminée, le script CGI est terminé. Dans Common Gateway Interface, le terme commun signifie qu'il peut fonctionner correctement dans tout système d'exploitation ou langage de programmation.

Auparavant, les scripts shell UNIX et PERL étaient utilisés pour écrire les programmes CGI, raison pour laquelle il a été appelé «scripts» CGI. Mais maintenant, n'importe quel langage tel que C, C ++, Perl, Visual Basic ou Python peut être utilisé. Bien que CGI puisse entraîner des problèmes de sécurité potentiels, le serveur Web peut également traiter les fichiers exécutables en tant que programmes CGI dans certains répertoires spécifiques. CGI traite chaque demande client par un processus distinct, ce qui augmente la charge du serveur et la ralentit.

Définition de Servlet

Un servlet est un composant Web basé sur Java agissant en tant que programme intermédiaire facilitant l'interaction entre le navigateur Web ou le client HTTP et le serveur HTTP. Semblables à CGI, les servlets peuvent également être utilisés pour rassembler les informations à l'aide des formulaires de page Web, afficher les enregistrements de la base de données et générer des pages Web dynamiques à l'aide d'un conteneur. Servlet est une classe Java qui ne repose pas sur la plate-forme et qui est ensuite compilée en bytecode, indépendant de la plate-forme. Le bytecode indépendant de la plate-forme peut être stocké et exécuté de manière dynamique par le serveur Web Java. Servlet utilise un mécanisme de socket et RMI pour établir la connexion entre des applets, des bases de données ou d'autres programmes de base de données.

Le conteneur de servlet fait partie du serveur Web et prend en charge les protocoles HTTP et HTTPS . Il utilise la méthode requête / réponse en utilisant les protocoles HTTP et HTTPS pour permettre une interaction avec les clients Web. Contrairement à CGI, le servlet s'exécute dans l'espace d'adressage du serveur Web, où chaque client n'est pas nécessairement traité séparément. Dans le servlet, un ensemble de contraintes est appliqué sur le serveur pour protéger les ressources sur le serveur.

Différences clés entre CGI et Servlet

  1. Les scripts CGI sont écrits dans le système d'exploitation natif et stockés dans un certain répertoire. D'autre part, les programmes de servlets sont généralement écrits en Java, qui sont compilés en bytecode Java et exécutés en JVM.
  2. CGI est spécifique à la plate-forme, ce qui rend difficile le basculement entre les systèmes d'exploitation. Par contre, les servlets peuvent être exécutés sous n’importe quel système d’exploitation ayant installé la machine virtuelle Java, ce qui en fait une plate-forme indépendante.
  3. Dans CGI, chaque demande client qui arrive peut générer un processus distinct tandis que la servlet, les processus ne sont pas créés inutilement et partagent l'espace mémoire de la machine virtuelle.
  4. Les scripts CGI sont des programmes exécutables écrits dans le système d'exploitation natif du serveur. En revanche, les servlets sont compilés en bytecode Java qui s'exécute sur la machine virtuelle Java.
  5. Servlet est plus sécurisé que CGI car il utilise Java.
  6. La rapidité, la performance et l'efficacité de la servlet sont meilleures que celles de CGI.
  7. Les scripts CGI peuvent être directement traités. Au contraire, la servlet commence par traduire et compiler le programme, puis à le traiter.
  8. En ce qui concerne la portabilité, servlet est portable, contrairement à CGI.

Conclusion

CGI et Servlet fonctionnent de la même manière, mais l’utilisation de servlet est avantageuse par rapport à CGI car elle est rapide, sécurisée, indépendante de la plate-forme, facile à développer, accessible via plusieurs API et supportée par divers serveurs Web.

Top