Tableau de comparaison
Base de comparaison | CGI | Servlet |
---|---|---|
De base | Les programmes sont écrits dans le système d'exploitation natif. | Programmes employés utilisant Java. |
Dépendance de la plateforme | Dépend de la plateforme | Ne compte pas sur la plate-forme |
Création de processus | Chaque demande client crée son propre processus. | Les processus sont créés en fonction du type de demande client. |
Conversion du script | Présent sous forme d'exécutables (natif du système d'exploitation du serveur). | Compilé en Java Bytecode. |
Fonctionne sur | Processus séparé | JVM |
Sécurité | Plus vulnérable aux attaques. | Peut résister aux attaques. |
La vitesse | Ralentissez | plus rapide |
Traitement du script | Direct | Avant 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
- 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.
- 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.
- 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.
- 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.
- Servlet est plus sécurisé que CGI car il utilise Java.
- La rapidité, la performance et l'efficacité de la servlet sont meilleures que celles de CGI.
- Les scripts CGI peuvent être directement traités. Au contraire, la servlet commence par traduire et compiler le programme, puis à le traiter.
- 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.