FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Que sont les scripts CGI et comment améliorent-ils les sites Web ?

CGI signifie Common Gateway Interface . Il s'agit d'un protocole standard permettant aux serveurs Web d'exécuter des programmes et de générer une sortie pour les navigateurs Web. Le programme est appelé programme CGI (ou script CGI). Il s'exécute au nom du serveur Web pour produire une sortie lorsqu'une URL particulière est demandée par le navigateur Web de l'utilisateur.

Avantages des CGI

Un CGI améliore un site Web de plusieurs façons. De l'authentification d'un utilisateur à la fourniture d'une application d'achat à grande échelle, les CGI sont au cœur même de la dynamique et de l'interactivité du Web. Voici quelques-uns des principaux avantages de l'utilisation des CGI pour améliorer l'expérience utilisateur.

  • Personnalisé pour l'utilisateur : La sortie peut être personnalisée pour chaque utilisateur. Par exemple, un utilisateur peut vérifier les soldes de ses comptes bancaires, qui peuvent devoir être extraits de la base de données.
  • Autres types de personnalisation : L'utilisateur peut utiliser un téléphone mobile pour accéder au site Web et la sortie doit être ajustée à la résolution du téléphone mobile.
  • Effectuer des mises à jour : Une mise à jour est effectuée à la suite d'un formulaire POST (expliqué ci-dessous). Par exemple, vous pouvez mettre à jour votre statut Facebook.
  • Téléchargement de fichiers : Un fichier téléchargé par un utilisateur a besoin d'un CGI côté serveur pour gérer la demande de téléchargement de fichier afin de stocker le fichier à un emplacement particulier.
  • Génération de la sortie : En plus de la sortie affichée dans le navigateur, de nombreux sites Web proposent des formes de sortie supplémentaires, telles que Word Document, PDF, etc. Certains de ces documents peuvent devoir être générés à la volée par les CGI, comme votre facture de téléphone ou votre relevé de carte de crédit. .

Servir des fichiers statiques par rapport aux CGI

Un fichier HTML (ainsi que JavaScript et CSS) est servi directement par le serveur Web. Un programme CGI, en revanche, est exécuté par le serveur Web lorsqu'une URL particulière est demandée. Il est utilisé pour répondre aux demandes nécessitant un accès à des informations dynamiques, telles que celles résidant dans une base de données. Un exemple serait l'authentification d'un utilisateur pour autoriser l'accès :le nom d'utilisateur et le mot de passe pourraient être stockés dans une base de données, et une demande de validation de l'utilisateur aurait besoin d'accéder à ces informations. Pour répondre à cette demande, le serveur Web exécuterait un programme CGI qui rechercherait les informations et validerait l'utilisateur.

Que sont les scripts CGI et comment améliorent-ils les sites Web ?

Configuration des serveurs Web

Un serveur Web exécute un logiciel de serveur HTTP qui offre la possibilité de servir des fichiers HTML, ainsi que d'exécuter des programmes CGI pour générer une sortie à la volée. Le logiciel du serveur HTTP est configuré par l'administrateur du serveur Web pour exécuter des programmes spécifiques lorsque des URL correspondant à des modèles spécifiques sont demandées.

Exécuter des CGI

Lorsque le navigateur d'un utilisateur fait une demande à une URL particulière, le navigateur envoie tout un tas d'informations, sous la forme d'en-têtes HTTP et éventuellement du corps HTTP. Certains de ces éléments peuvent inclure :

  • Le type de navigateur
  • Le nom de l'utilisateur si l'utilisateur s'est connecté
  • Tous les cookies précédemment stockés par le serveur Web
  • Variables de formulaire si la requête est une requête POST

Lorsqu'un CGI est exécuté pour répondre à cette demande, le serveur transmet toutes ces informations au programme CGI. Le CGI peut utiliser tout ou partie de ces informations pour traiter la demande et personnaliser la sortie pour l'utilisateur.

Gérer les POST de formulaires

L'une des principales utilisations des CGI consiste à traiter des formulaires HTML.

Un formulaire HTML est un dispositif d'interaction avec l'utilisateur et fournit une variété de contrôles permettant à l'utilisateur de fournir une entrée. Lorsque l'utilisateur clique sur Envoyer (ou quelque chose de similaire) sur le formulaire, le navigateur Web agrège les informations du formulaire et les envoie à l'URL cible indiquée dans le formulaire. Le serveur Web, à son tour, appelle généralement un programme CGI et envoie toutes les entrées collectées auprès de l'utilisateur. Cette interaction est appelée formulaire POST, un terme technique indiquant la méthode d'envoi du contenu du formulaire au CGI. Le CGI traite le contenu du formulaire et produit une réponse appropriée à envoyer au navigateur.

Un exemple de CGI

Voici un exemple de programme CGI écrit en python. Il peut être déployé sur un serveur Web afin d'être accessible à partir d'une URL similaire à :http://www.example.com/cgi-bin/env.cgi. Lorsqu'il est invoqué, le CGI signale toutes les variables qu'il a reçues dans son environnement à partir du serveur Web. C'est à peu près aussi simple qu'un programme CGI peut l'être.

#!/usr/bin/python 
importer le système d'exploitation
print "Type de contenu :text/plain
"
pour la clé dans os.environ :
touche d'impression, "=>\"", os.environ[clé], "\""

L'évolution des CGI

Les CGI font partie des serveurs Web depuis presque le début du Web. Le tout premier serveur Web, le serveur Web NCSA HTTPd, a démarré avec la prise en charge du service de fichiers statiques uniquement. Par la suite, il a été reconnu que l'exécution d'un script en réponse à une demande d'URL permettait au serveur Web de générer du contenu dynamique, et la spécification CGI était née.

Les premiers programmes CGI étaient de simples scripts écrits dans un langage tel que Perl, TCL, Shell, etc. Il pouvait également être écrit dans un langage compilé tel que C/C++, mais cela nécessitait une étape supplémentaire de compilation du programme pour créer l'exécutable. CGI.

Au fur et à mesure que les CGI devenaient plus complexes et que les demandes des utilisateurs augmentaient, il a été reconnu que la création d'un processus CGI séparé pour traiter chaque demande était plutôt trop lourde en termes de surcharge de mémoire et de processeur. Surtout lorsque le traitement de la demande prend moins de temps que la surcharge de création d'un nouveau processus.

À ce stade, les serveurs Web ont commencé à intégrer des interpréteurs de script complets afin que les demandes des utilisateurs puissent être traitées dans un thread distinct. au sein d'un processus de serveur Web unique. Cela a amélioré l'efficacité du traitement des demandes et réduit les temps de réponse.

Cela a coïncidé avec l'arrivée de nouveaux langages spécifiquement conçus pour le web, comme PHP. L'interpréteur PHP a commencé sa vie comme un programme CGI lui-même. Dans le cadre du traitement des requêtes, il analyse le fichier demandé pour les directives PHP et exécute les commandes qu'il contient.

Aujourd'hui, en plus des scripts CGI, il existe de nombreuses technologies permettant d'exécuter du code sur le serveur en réponse à une requête.

Utilisez-vous des scripts CGI dans une partie du site Web de votre entreprise ? Avez-vous rencontré des problèmes particuliers lors du déploiement ou de la maintenance des scripts CGI ? Discutez ci-dessous dans les commentaires.


[]