Différence entre CGI et Servlet
- 3982
- 628
- Mlle Lina Schmitt
CGI vs servlet
CGI (interface de passerelle commune) est la toute première tentative de fournir aux utilisateurs un contenu dynamique. Il permet aux utilisateurs d'exécuter un programme qui réside dans le serveur pour traiter les données et même accéder aux bases de données afin de produire le contenu pertinent. Comme ce sont des programmes, ils sont écrits dans le système d'exploitation natifs puis stockés dans un répertoire spécifique. Un servlet est une implémentation de Java qui vise à fournir le même service que CGI, mais au lieu de programmes compilés dans le système d'exploitation natif, il compile dans le bytecode Java qui est ensuite exécuté dans la machine virtuelle Java. Bien que les programmes Java puissent être compilés dans le code natif, ils préfèrent toujours compiler dans le bytecode Java.
Le premier avantage des servlets sur CGI est dans sa plate-forme indépendante. Les servlets peuvent fonctionner sur n'importe quel système d'exploitation tant qu'un JVM est installé, ce qui signifie que vous n'auriez aucun problème même si vous choisissez de changer de système d'exploitation. Avec CGI, le système d'exploitation de commutation est un processus difficile et laborieux car vous auriez besoin de recompiler les programmes du nouveau système d'exploitation.
Puisque vous organisez des programmes indépendants dans CGI, ils créent leur propre processus lorsqu'ils sont exécutés, ce qui ne se produit pas avec les servlets car ils partagent simplement l'espace mémoire du JVM. Cela peut entraîner des problèmes liés aux frais généraux, en particulier lorsque vous augmentez le nombre d'utilisateurs de façon exponentielle. Il crée également des problèmes de vulnérabilité car le programme n'est pas contrôlé de quelque manière que ce soit une fois qu'il est exécuté sur le serveur.
Plus tard, la méthode la plus courante lors de l'utilisation de CGI est via des scripts. Cela réduit le temps nécessaire à la création de programmes et est généralement plus sécurisé. Avec CGI, vous pouvez exécuter des scripts immédiatement, tandis que les servlets, vous devrez traduire le script en java et le compiler en un servlet qui ajoute un peu au temps de chargement.
Résumé:
1.Les CGI sont généralement des exécutables originaires du système d'exploitation du serveur, bien que les servlets puissent également être compilés avec le système d'exploitation natif, il peut être compilé en bytecode Java qui est ensuite exécuté sur un JVM
2.Les programmes CGI dépendent de la plate-forme tandis que les servlets sont indépendants de la plate-forme
3.Les programmes CGI s'exécutent comme des processus distincts sur l'ordinateur tandis que les servlets fonctionnent sur le JVM
4.CGI peut être plus vulnérable aux attaques que les servlets
5.CGI peut traiter directement les scripts alors qu'il doit être traduit et compilé avant qu'il ne puisse être exécuté en tant que servlet