En outre, il est facile de changer et les programmes CGI de test, depuis les langages de script populaires tels que Perl peut être utilisé pour les écrire
.
La nature niveau de l'interface CGI signifie aussi que d'un script CGI ou programme écrit pour un serveur Web Linux sera probablement fonctionner sans modification sur un autre serveur Web Linux et éventuellement sur un autre serveur Unix, si elle est écrite dans une langue couramment dans tous les systèmes d'exploitation.
Pourtant, pour tous Ses avantages, CGI souffre de quelques inconvénients graves qui la rendent peu attrayante pour certains sites Web. Ses deux principales faiblesses concernent la sécurité et la vitesse.
Depuis l'émergence du Web, des trous importants dans l'interface CGI ont été découvert que, si un script est mal écrit, peut permettre un système exécutant un serveur Web pour être complètement accessible à un pirate bien informé.
Cela rend CGI moins souhaitable lorsque la sécurité des données sur le serveur Web est primordiale, car il serait sur la plupart des serveurs Internet d'entreprise et intranet, et en particulier sur les sites proposant des transactions financières en ligne et les ventes de cartes de crédit
.
En outre, l'interface CGI est peu efficace. Le serveur Web exécute un ou plusieurs processus qui répondent à des demandes de clients. Le navigateur commence alors processus enfants pour le programme CGI, le passage de données à ce nouveau processus et d'attendre qu'elle se termine.
Sur un site occupé, cela peut conduire à un grand nombre de nouveaux processus ont besoin de commencer dans de courtes périodes de temps, en particulier lorsque les scripts CGI sont largement utilisés. Chaque demande pour un programme CGI conduit à un processus distinct pour chaque demande.
Ceci est de façon très inefficace pour traiter de grandes quantités de données et les demandes, et il est la raison pour laquelle de nombreux serveurs Web de premier plan ont mis en œuvre leurs propres API pour l'écriture de programmes côté serveur.
Les API de Application Program Interfaces fournissent un moyen d'écrire des programmes qui intègrent étroitement dans le serveur Web et ne sont généralement pas besoin de nouveaux processus pour chaque demande. API ont permis le développement d'applications basées sur le Web qui sont c