Différence entre CGI et Servlet


CGI ou Servlet

CGI (Common Gateway Interface) est la toute première tentative de fournir du contenu dynamique aux utilisateurs. Il permet aux utilisateurs d'exécuter un programme qui réside dans le serveur pour traiter les données et même d'accéder aux bases de données afin de produire le contenu pertinent. Comme il s'agit de programmes, ils sont écrits dans le système d'exploitation natif et stockés dans un répertoire spécifique. Une 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, elle 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 quand même compiler dans le bytecode Java.

Le premier avantage des servlets par rapport à CGI réside dans leur indépendance de plate-forme. Les servlets peuvent fonctionner sur n'importe quel système d'exploitation tant qu'une JVM est installée, ce qui signifie que vous n'aurez aucun problème même si vous choisissez de changer de système d'exploitation. Avec CGI, la commutation de systèmes d'exploitation est un processus difficile et laborieux, car vous devrez recompiler les programmes dans le nouveau système d'exploitation.


Puisque vous exécutez des programmes indépendants dans CGI, ils créent leur propre processus lorsqu'ils sont exécutés, ce qui n'arrive pas avec les servlets car ils partagent simplement l'espace mémoire de la 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 manière exponentielle. Il crée également des problèmes de vulnérabilité car le programme n'est pas contrôlé d'une manière ou d'une autre 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 le script. Cela réduit le temps nécessaire à la création des programmes et est généralement plus sûr. Avec CGI, vous pouvez exécuter des scripts tout de suite, tandis que les servlets, vous aurez besoin de traduire le script en Java et de le compiler dans une servlet qui ajoute un peu au temps de chargement.

Les idées Clis

Les CGI sont généralement des exécutables natifs du système d'exploitation du serveur, bien que les servlets puissent également être compilés vers le système d'exploitation natif, ils peuvent être compilés en code Java qui est ensuite exécuté sur un JVM

Les programmes CGI dépendent de la plate-forme tandis que les serviteurs sont indépendants de la plate-forme

Les programmes CGI s'exécutent séparément sur l'ordinateur tandis que les servlets s'exécutent sur la JVM

CGI peut être plus vulnérable aux attaques que les servlets

CGI peut traiter directement les scripts alors qu'il a besoin d'être traduit et compilé avant de pouvoir être exécuté en tant que servlet


Une question ? Nous avons oublié quelque chose ? n'hésitez pas à participer aux commentaires. Nous compléterons cet article avec plaisir.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *