Les lecteurs pensent peut-être que les programmes CGI ont un sentiment de mystère. Dans cette section, nous décrirons certains processus de programmation de base des programmes CGI. Après l’avoir lu, il n’y aura plus de mystère.
3. Autres problèmes avec les spécifications CGI :
Les lecteurs pensent peut-être que les programmes CGI ont un sentiment de mystère. Dans cette section, nous décrirons certains processus de programmation de base des programmes CGI. Après l’avoir lu, il n’y aura plus de mystère.
Tout d'abord, lorsque vous effectuez un travail de programmation, divisez une grande tâche en plusieurs petites tâches, et chaque petite tâche remplit une fonction relativement indépendante. De nombreuses personnes hésitent à écrire elles-mêmes des programmes CGI car elles pensent que la programmation CGI est difficile. En fait, si vous divisez un programme CGI typique en parties suivantes et que vous les résolvez une par une, vous n'aurez aucune difficulté avec le programme CGI :
De manière générale, lors de l'appel d'un programme CGI dans le navigateur, le serveur doit d'abord trouver le programme CGI. Généralement, le programme CGI est placé dans le répertoire spécifié par le serveur dans notre OmniHTTPD, dans le répertoire virtuel cgi-bin et cgi-win. Les répertoires réels spécifiés par le répertoire sont respectivement les répertoires c:httpdcgi-bin et c:httpdcgi-win. Vous pouvez modifier le répertoire réel dans OmniHTTPD ou ajouter un répertoire virtuel, tel que : spécifier le répertoire virtuel cgi-test comme c:my-cgi si vous avez un CGI nommé test1.cgi dans le programme de répertoire c:my-cgi ; , vous pouvez l'appeler dans votre navigateur à l'adresse http://localhost/cgi-test/test1.cgi.
Dans des circonstances normales, le serveur trouve le programme CGI demandé par le navigateur et génère un processus de ce programme CGI. De cette façon, le navigateur et le serveur ont établi une connexion. Une fois l'exécution du programme CGI terminée, le processus disparaît et la connexion est perdue. Toutes les opérations de la figure ci-dessus sont terminées dans le délai d'établissement de la connexion. Par conséquent, les tâches effectuées par chaque programme CGI doivent être aussi réduites que possible, sinon cela prendra beaucoup de temps et de ressources sur le serveur et le serveur. temps d'attente du navigateur client Il sera également très long.
Comme vous pouvez le voir sur la figure ci-dessus, les programmes CGI sont généralement divisés en trois parties : la saisie des données, le traitement des données et la sortie des données. Parfois, il est nécessaire d'interagir avec la base de données dans la partie traitement des données (c'est aussi la spécialité de CGI) ; programmes). Parmi ces trois parties, l'entrée et la sortie de données ont des spécifications strictes, et le traitement des données est le domaine où vous pouvez utiliser votre imagination. Ensuite, je me concentrerai sur les spécifications et les précautions relatives à la saisie et à la sortie des données :
Auparavant, nous avons répertorié presque toutes les variables d'environnement utilisées par les programmes CGI. Parmi eux, une part considérable est étroitement liée à l’entrée et à la sortie de données. Ci-dessous, nous répertorions les variables d'environnement les plus couramment utilisées par catégorie :
Variables d'environnement liées au serveur :
GATEWAY_INTERFACE
SERVER_NAME
SERVEUR_PORT
SERVEUR_PROTOCOL
SERVEUR_LOGICIEL
Variables d'environnement liées au client :
HTTP_ACCEPTER
HTTP_ACCEPT_ENCODING
HTTP_ACCEPT_LANGUAGE
HTTP_AUTHORISATION
HTTP_CHARGE_TO
HTTP_FROM
HTTP_IF_MODIFIED_SINCE
HTTP_PRAGMA
HTTP_REFERER
HTTP_USER_AGENT
Variables d'environnement liées à la requête :
AUTH_TYPE
CONTENT_FILE
CONTENT_LENGTH
CONTENT_TYPE
OUTPUT_FILE
PATH_INFO
CHEMIN_TRANSLATÉ
QUERY_STRING
REMOTE_ADDR
REMOTE_USER
REQUEST_LINE
REQUEST_METHOD
SCRIPT_NAME
Il convient de mentionner ici que CONTENT_FILE et OUTPUT_FILE. Sous Windows 3.1 et DOS, peu de langages peuvent lire et écrire via les entrées et sorties standard (STDIN et STDOUT), ces deux variables sont donc utilisées à la place. Pour les autres variables d'environnement, veuillez vous référer à la liste détaillée précédente.
Comme mentionné précédemment, la méthode GET transmet les données via une URL ; la méthode POST transmet les données via STDIN. Quelle que soit la méthode utilisée, les données sont codées lors de la transmission des données. Cependant, nous n'avons pas à nous soucier de l'encodage et du décodage, car le langage de développement que nous utiliserons peut effectuer automatiquement cette tâche : cgi-lib.pl en Perl, TWebModule en Delphi, etc.
Les informations d'en-tête sont également très importantes dans la programmation CGI. Les informations d'en-tête sont un signal du programme CGI avant d'envoyer des informations au client. Il existe trois principaux types d'informations d'en-tête :
Type de contenu //Transmettre le HTML au navigateur
Localisation //Passez la nouvelle URL au navigateur
Statut //Habituellement utilisé pour vérifier les erreurs lorsqu'une erreur de programme CGI se produit
Le type de contenu est le type d'informations traitées par le navigateur, principalement le type MIME. Les méthodes sont définies comme des combinaisons de types et de sous-types. Les types MIME couramment utilisés sont : Texte, Multipart, Message, application, Image, Audio et Vidéo.
Par exemple, avant qu'un programme CGI envoie un document HTML au navigateur, il doit d'abord envoyer du texte/html. Écrit en Perl comme suit :
imprimer "Type de contenu : texte/html »
print "< h1> Salut tout le monde ! < /h1> "
L'emplacement entraîne la redirection du navigateur vers la nouvelle URL. Par exemple:
imprimer "Emplacement : http://www.chinabyte.com"
Ce programme Perl redirige le navigateur vers la page d'accueil de ChinaByte.
L'état indique l'état du programme CGI et est généralement utilisé pour vérifier les erreurs en cas d'échec du programme CGI. Le tableau suivant répertorie les codes d'état couramment utilisés et leur signification :
Description du résultat du code
200 OK la demande est satisfaite normalement
202 Accepter La demande a été acceptée et est en cours de traitement.
301 Déplacé Le document a été déplacé vers un nouvel emplacement
302 Trouvé Le document ne se trouve pas au niveau de la description, mais ailleurs sur le serveur.
400 Bad Request La syntaxe de la requête HTTP est incorrecte.
401 Les documents non autorisés nécessitent des droits d'accès
403 Forbindden Le serveur refuse l'accès au document
404 Non trouvé Le serveur ne trouve pas le document.
500 Server Error Une erreur grave s'est produite sur le serveur
502 Service surchargé Le serveur est occupé et ne peut pas traiter la demande.
Cela se termine ici. Après avoir acquis ces connaissances de base de CGI, vous pouvez commencer à développer des programmes CGI étape par étape en utilisant n'importe quel langage. Laissez-moi vous le répéter, les programmes CGI ne sont pas mystérieux, c'est juste un dialogue pour créer un serveur et une sorte de tâche.