SHTML et ASP sont similaires. Dans les fichiers nommés d'après SHTML, certaines instructions SSI sont utilisées, tout comme les instructions dans ASP. Vous pouvez écrire des instructions SSI dans le fichier shtml. Lorsque le client accède à ces fichiers SHTML,
Le côté serveur lira et interprétera ces fichiers SHTML, et interprétera les instructions SSI contenues dans le fichier SHTML. Par exemple: vous pouvez utiliser des instructions SSI pour vous référer à d'autres fichiers HTML (#include) dans le fichier SHTML. Le fichier envoyé par le serveur au client est que le SHTML déjà expliqué n'a pas d'instructions SSI. Il implémente les fonctions que HTML n'a pas, c'est-à-dire qu'il peut implémenter la dynamique
SHTML peut être considéré comme une évolution de HTML. Comme le système d'information de Sina, le contenu des nouvelles est corrigé, mais les publicités et les menus sont cités dans #include.
Actuellement, il existe principalement les utilisations suivantes:
1. Afficher les variables d'environnement côté serveur <#echo>
2. Insérez le contenu texte directement dans le document <#include>
3. Afficher les informations liées au document Web <#flastmod> <# fsize> (telles que la date / taille de création de fichiers, etc.)
4. Exécutez directement divers programmes sur le serveur <#EXEC> (comme CGI ou d'autres programmes exécutables)
5. Définissez le format d'affichage des informations SSI <#config> (tel que la méthode d'affichage de la date de création de fichiers / taille)
Advanced SSI <xSsi> peut définir des variables pour utiliser les instructions conditionnelles.
Utilisation de SSI
SSI est un ensemble de commandes fournies pour les serveurs Web. Ces commandes ne sont intégrées que dans le contenu des commentaires du document HTML. comme:
<#include file = info.htm ->
Il s'agit d'une directive SSI, qui est utilisée pour copier le contenu de Info.htm à la page actuelle. Lorsque le visiteur navigue, il verra que d'autres documents HTML affichent le contenu de Info.htm.
Les formes d'utilisation des autres instructions SSI sont fondamentalement les mêmes que celles mentionnées à l'heure actuelle. On peut voir que l'utilisation de SSI insère juste un petit code, et les formulaires d'utilisation sont très simples.
Bien sûr, si le serveur Web ne prend pas en charge SSI, il les traitera simplement comme des informations d'annotation et sautera directement le contenu; Le navigateur ignorera également ces informations.
Comment configurer les fonctionnalités SSI sur mon serveur Web?
Sur certains serveurs Web (tels que IIS 4.0 / Sambar 4.2), les fichiers contenant la directive #include doivent utiliser une extension qui a été mappée à l'interpréteur SSI; Sinon, le serveur Web ne traitera pas la directive SSI; Par défaut, les extensions .stm, .shtm et .shtml sont mappées sur l'interprète (SSInc.DLL).
Apache est basé sur vos paramètres, modifiez SRM.Conf tel que:
AddType Text / X-Server-Parsed-HTML .shtml analysera les directives SSI uniquement pour les fichiers avec extension .shtml
Texte addType / X-Server-Parsed-html .html analysera les directives SSI pour tous les documents HTML
Le serveur Web Netscape peut utiliser directement le serveur d'administration (serveur d'administration) pour activer la fonction SSI.
Le site Web utilise la balise de mappage dans le programme d'administration du serveur et ajoute le type de contenu comme: wwwserver / html-ssi
Le serveur CERN ne prend pas en charge SSI. Vous pouvez utiliser la méthode SSI SCAM. Téléchargez un script perl sur http://sw.cse.bris.ac.uk/webtools/fakessi.html pour faire en sorte que votre serveur CERN utilise certaines instructions SSI. (La directive Exec n'est pas prise en charge.)
Format d'instruction SSI de base
Format d'instruction SSI de base:
Code du programme:
<! ---- Nom de l'instruction = Paramètres d'instruction>
<! ---- Nom de l'instruction = Paramètres d'instruction>
comme
Code du programme:
<#include file = info.htm ->
<#include file = info.htm ->
illustrer:
1. <! - -> est l'annotation dans la syntaxe HTML. Ces informations seront ignorées lorsque le serveur Web ne prend pas en charge SSI.
2. #Include est l'une des directives SSI.
3. Le fichier est le paramètre de l'inclusion, info.htm est la valeur du paramètre et se réfère au nom du document à inclure dans cette instruction.
Avis:
1. <! - Il n'y a pas d'espace entre le numéro #, seules les instructions et paramètres SSI existent.
2. La ponctuation ci-dessus =, personne ne peut être manqué.
3. Les instructions SSI sont sensibles à la casse, donc les paramètres doivent être minuscules pour fonctionner.
Explication détaillée de l'utilisation des instructions SSI
Démonstration #Echo
effet:
Insérer des variables d'environnement dans la page.
grammaire:
Code du programme:
<! - # echo var = nom de variable ->
<! - # echo var = nom de variable ->
Nom de ce document: Code du programme:
<! - # echo var = document_name ->
<! - # echo var = document_name ->
Heure actuelle: code de programme:
<! - # echo var = date_local ->
<! - # echo var = date_local ->
Votre adresse IP est le code du programme:
<! - # echo var = rote_addr ->
<! - # echo var = rote_addr ->
# inclusion de démonstration
effet:
Insérez le contenu du fichier texte directement dans la page de document.
grammaire:
Code du programme:
<#include file = nom de fichier ->
<#include virtual = nom de fichier ->
<#include file = nom de fichier ->
<#include virtual = nom de fichier ->
Le nom de fichier est un chemin relatif relatif par rapport au répertoire où se trouve le document à l'aide de la directive #include. Les fichiers inclus peuvent être dans le même répertoire de niveau ou ses sous-répertoires, mais pas dans le répertoire de niveau précédent. Si le document NAV_HEAD.htm dans le répertoire actuel est file = nav_head.htm.
Le nom de fichier virtuel est le chemin complet du répertoire virtuel du site Web. Si cela signifie le fichier NAV_HEAD.htm dans le répertoire Hoyi sous le répertoire racine du document du serveur; alors c'est file = / hoyi / nav_head.htm
paramètre:
Le fichier spécifie l'emplacement du fichier contenu par rapport à ce document
Virtual spécifie l'emplacement par rapport au répertoire racine du document du serveur
Avis:
1. Le nom du fichier doit avoir une extension.
2. Les fichiers inclus peuvent avoir n'importe quelle extension de fichier. Je pense qu'il est le plus pratique d'utiliser directement l'extension HTM. Microsoft recommande d'utiliser l'extension .inc (cela dépend de votre passe-temps).
Exemple:
Code du programme:
<#include file = nav_head.htm -> Insérez le fichier d'en-tête sur la page en cours
<#include file = nav_foot.htm -> Insérez le fichier de queue sur la page actuelle
<#include file = nav_head.htm -> Insérez le fichier d'en-tête sur la page en cours
<#include file = nav_foot.htm -> Insérez le fichier de queue sur la page actuelle
#flastmod et #FSize Dontiques
Fonction: #flastmod fichier Dernière date de mise à jour
Longueur de fichier #FSize
grammaire:
Code du programme:
<! - # flastmod file = nom de fichier ->
<! - # fsize file = nom de fichier ->
<! - # flastmod file = nom de fichier ->
<! - # fsize file = nom de fichier ->
paramètre:
Le fichier spécifie l'emplacement du fichier contenu par rapport à ce document, tel que info.txt, qui représente le document info.txt dans le répertoire actuel.
Virtual spécifie l'emplacement par rapport au répertoire racine du document du serveur, tel que /hoyi/info.txt
Avis:
Le nom du fichier doit avoir une extension.
Exemple:
Code du programme:
<! - # flastmod file = news.htm ->
<! - # flastmod file = news.htm ->
Insérez la dernière date de mise à jour du fichier news.htm dans le répertoire actuel dans la page actuelle
Code du programme:
<! - # fsize file = news.htm ->
<! - # fsize file = news.htm ->
Entrez la taille du fichier de news.htm dans le répertoire actuel dans la page actuelle
Démonstration #Exec
effet:
Insérez la sortie d'un programme externe dans la page. Il peut être inséré dans les programmes CGI ou les entrées à partir d'une application régulière, selon que les paramètres utilisés sont CMD ou CGI.
grammaire:
Code du programme:
<! - # exec cmd = nom de fichier ->
<! - # exec cgi = nom de fichier ->
<! - # exec cmd = nom de fichier ->
<! - # exec cgi = nom de fichier ->
paramètre:
applications régulières CMD
Programme de script CGI CGI
Exemple:
Code du programme:
<! - # exec cmd = cat / etc / passwd -> affichera le fichier de mot de passe
<! - # exec cmd = dir / b -> affichera la liste des fichiers dans le répertoire actuel
<! - # exec cgi = / cgi-bin / gb.cgi -> Le programme CGI gb.cgi sera exécuté.
<! - # exec cgi = / cgi-bin / access_log.cgi -> Le programme CGI Access_log.cgi sera exécuté.
<! - # exec cmd = cat / etc / passwd -> affichera le fichier de mot de passe
<! - # exec cmd = dir / b -> affichera la liste des fichiers dans le répertoire actuel
<! - # exec cgi = / cgi-bin / gb.cgi -> Le programme CGI gb.cgi sera exécuté.
<! - # exec cgi = / cgi-bin / access_log.cgi -> Le programme CGI Access_log.cgi sera exécuté.
Avis:
Comme on peut le voir à partir de l'exemple ci-dessus, cette instruction est assez pratique, mais il y a aussi des problèmes de sécurité.
Méthode interdite:
. Apache, supprimer les options inclut la ligne execcgi dans Access.conf;
. Dans IIS, pour désactiver la commande #EXEC, vous pouvez modifier la métadatabase SSiexecdable;
#config
Fonction: Spécifie le format du message d'erreur, de la taille de la date et du fichier renvoyé au navigateur client.
grammaire:
Code du programme:
<! - # configerrmsg = Message d'erreur personnalisé ->
<! - # configSizefmt = unité d'affichage ->
<! - # configTimefmt = Format d'affichage ->
<! - # configerrmsg = Message d'erreur personnalisé ->
<! - # configSizefmt = unité d'affichage ->
<! - # configTimefmt = Format d'affichage ->
paramètre:
Errmsg personnalisé les messages d'erreur d'exécution SSI peuvent être utilisés de quelque manière que ce soit.
Méthode d'affichage de la taille du fichier sizefmt, la méthode par défaut est l'octet (octets) peut être modifiée en méthode Kilobyte (ABREV)
Méthode TimeFMT Time Affichage, l'attribut de configuration le plus flexible.
Exemple: montre la taille d'un fichier qui n'existe pas
Code du programme:
<! - # ConfigerRmsg = Erreur d'exécution du serveur, veuillez contacter l'administrateur [email protected], merci! ->
<! - # fsize file = no file.htm ->
<! - # ConfigerRmsg = Erreur d'exécution du serveur, veuillez contacter l'administrateur [email protected], merci! ->
<! - # fsize file = no file.htm ->
Afficher la taille du fichier en kilo-great
Code du programme:
<! - # configSizefmt = abrév ->
<! - # fsizefile = news.htm ->
<! - # configSizefmt = abrév ->
<! - # fsizefile = news.htm ->
Afficher le temps dans un format de temps spécifique
Code du programme:
<! - # configTimefmt =% y an /% m mois% d jour et semaine% w beijing time% h:% m:% s,% y an a réussi% j days aujourd'hui est la semaine% u de% y an ->>
<! - # echo var = date_local -> montre quel jour de la semaine, du mois et du fuseau horaire il est aujourd'hui
<! - # configTimefmt = aujourd'hui% a,% b, le fuseau horaire du serveur est% z, oui ->
<! - # echo var = date_local ->
<! - # configTimefmt =% y an /% m mois% d jour et semaine% w beijing time% h:% m:% s,% y an a réussi% j days aujourd'hui est la semaine% u de% y an ->>
<! - # echo var = date_local -> montre quel jour de la semaine, du mois et du fuseau horaire il est aujourd'hui
<! - # configTimefmt = aujourd'hui% a,% b, le fuseau horaire du serveur est% z, oui ->
<! - # echo var = date_local ->
XSSI
XSSI (SSI étendu) est un ensemble d'instructions SSI avancées intégrées dans le module Mod-include d'Apache 1.2 ou ultérieure.
Parmi eux, les instructions disponibles sont:
#printinv
#ensemble
#si
#printinv
Fonction: Affiche toutes les variables d'environnement actuellement présentes dans l'environnement du serveur Web.
Syntaxe: code de programme:
<! - # Printinv ->
<! - # Printinv ->
Paramètres: aucun
Exemple:
Code du programme:
<! - # Printinv ->
<! - # Printinv ->
#ensemble
Fonction: Vous pouvez attribuer des valeurs aux variables à utiliser dans l'instruction if ultérieure.
Syntaxe: code de programme:
<! - # set var = valeur de nom de variable = valeur variable ->
<! - # set var = valeur de nom de variable = valeur variable ->
Paramètres: aucun
Exemple: code de programme:
<! - # set var = colorValue = red ->
<! - # set var = colorValue = red ->
#si
Fonction: Créez une page qui peut modifier les données, qui s'affichent en fonction des exigences de calcul lors de l'utilisation de l'instruction IF.
Syntaxe: code de programme:
<! - # if expr = $ name de variable = valeur variable a ->
Montrer du contenu
<! - # elif expr = $ name de variable = valeur variable b ->
Montrer du contenu
<! - # else ->
Montrer du contenu
<! - # endif ->
<! - # if expr = $ name de variable = valeur variable a ->
Montrer du contenu
<! - # elif expr = $ name de variable = valeur variable b ->
Montrer du contenu
<! - # else ->
Montrer du contenu
<! - # endif ->
Exemple:
Code du programme:
<! - # if expr = $ server_name = http: //www.31896.net/-->
Bienvenue dans la zone de discussion de sécurité du serveur http://www.31896.net/.
<! - # elif expr = $ server_name = http: //www.fineacer.org/ ->
Bienvenue à Qingchang Computer Network Security Online http://www.fineacer.org/.
<! - # else ->
Bienvenue dans le domaine de discussion sur la sécurité du serveur!
<! - # endif ->
<! - # if expr = $ server_name = http: //www.31896.net/-->
Bienvenue dans la zone de discussion de sécurité du serveur http://www.31896.net/.
<! - # elif expr = $ server_name = http: //www.fineacer.org/ ->
Bienvenue à Qingchang Computer Network Security Online http://www.fineacer.org/.
<! - # else ->
Bienvenue dans le domaine de discussion sur la sécurité du serveur!
<! - # endif ->
Remarque: Les bombardements utilisés dans les instructions précédentes sont utilisés pour remplacer les citations internes afin qu'elles ne soient pas interprétées comme des expressions de fin. Non omis.
1. Commande de configuration
La commande config est principalement utilisée pour modifier les paramètres par défaut de SSI. dans:
ERRMSG: Définissez le message d'erreur par défaut. Afin de renvoyer les informations d'erreur définies par l'utilisateur normalement, le paramètre ERRMSG doit être placé devant d'autres commandes SSI dans le fichier HTML, sinon le client ne peut afficher que les informations d'erreur par défaut au lieu des informations personnalisées définies par l'utilisateur.
<! - # configerrmsg = error! Veuillez envoyer un e-mail à [email protected] ->
TimeFMT: définit le format d'utilisation de la date et de l'heure. Le paramètre TIMEFMT doit être utilisé avant la commande ECHO.
<! - # configTimefmt =% a,% b% d,% y ->
<! - # echo var = last_modified ->
Les résultats sont affichés comme:
Mercredi 12 avril 2000
Peut-être que les utilisateurs ne sont pas familiers avec le% A% B% D utilisé dans l'exemple ci-dessus. Résumons certains des formats de date et de temps les plus couramment utilisés dans SSI sous la forme d'une table.
Sizefmt: détermine si la taille du fichier est exprimée en octets, kilo-gibation ou mégaoctets. Si dans les octets, la valeur du paramètre est d'octets; L'abréviation peut être utilisée pour les kilobytes et les mégaoctets. De même, le paramètre sizefmt doit être placé avant l'utilisation de la commande fsize.
<! - # configSizefmt = bytes ->
<! - # fsize file = index.html ->
2. Inclure la commande
La commande inclue peut insérer du texte ou des images d'autres documents dans le document actuellement analysé, qui est la clé de l'ensemble du SSI. Grâce à la commande include, il vous suffit de modifier un fichier pour mettre à jour le site entier instantanément!
La commande include a deux paramètres différents:
Virtual: donne un chemin virtuel vers un document côté serveur. Par exemple:
<#include virtual = / incluse / en-tête.html ->
Fichier: donne le chemin relatif vers le répertoire actuel, où ../ ne peut pas être utilisé, et le chemin absolu ne peut pas être utilisé. Par exemple:
<#include file = header.html ->
Cela nécessite que chaque répertoire contient un fichier en-tête.html.
3. Commande d'écho
La commande echo peut afficher les variables d'environnement suivantes:
Document_name: affiche le nom du document actuel.
<! - # echo var = document_name ->
Les résultats sont affichés comme:
index.html
Document_uri: affiche le chemin virtuel vers le document actuel. Par exemple:
<! - # echo var = document_uri ->
Les résultats sont affichés comme:
/YOudirectory/yourfilename.html
À mesure que le site Web continue de croître, les URL qui deviennent de plus en plus longues seront certainement un mal de tête. Si vous utilisez SSI, tout sera résolu. Parce que nous pouvons combiner le nom de domaine du site Web et la commande SSI pour afficher l'URL complète, c'est-à-dire:
http: // yourDomain% 3c! - / # echo var = & ... uot; ->
Query_string_unescaped: affiche la chaîne de requête envoyée par le client qui n'a pas été échappée, avec tous les caractères spéciaux précédés de caractères d'évasion. Par exemple:
<! - # echo var = query_string_unescaped ->
DATE_LOCAL: Affiche la date et l'heure du fuseau horaire de définition du serveur. Les utilisateurs peuvent personnaliser les informations de sortie en fonction du paramètre TIMEFMT de la commande Config. Par exemple:
<! - # configTimefmt =% a, le% d de% b, dans l'année% y ->
<! - # echo var = date_local ->
Les résultats sont affichés comme:
Samedi 15 avril, en 2000
DATE_GMT: La fonction est la même que Date_Local, sauf qu'elle renvoie une date basée sur GMT. Par exemple:
<! - # echo var = date_gmt ->
Last_Modified: Affiche la dernière heure de mise à jour du document actuel. De même, il s'agit d'une caractéristique très pratique de SSI. Tant que vous ajoutez le texte simple suivant au document HTML, vous pouvez afficher dynamiquement l'heure de mise à jour sur la page.
<! - # echo var = last_modified ->
Variables de l'environnement CGI
En plus des variables d'environnement SSI, la commande ECHO peut également afficher les variables d'environnement CGI suivantes:
Server_software: affiche le nom et la version du logiciel du serveur. Par exemple:
<! - # echo var = server_software ->
Server_name: affiche le nom d'hôte du serveur, l'alias DNS ou l'adresse IP. Par exemple:
<! - # echo var = server_name ->
Server_protocol: affiche le nom et la version du protocole utilisés par la demande du client, tels que HTTP / 1.0. Par exemple:
<! - # echo var = server_protocol ->
Server_port: affiche le port de réponse du serveur. Par exemple:
<! - # echo var = server_port ->
Request_Method: affiche la méthode de demande de document du client, y compris Get, Head et Post. Par exemple:
<! - # echo var = request_method ->
Remote_host: affiche le nom de l'hôte client qui a publié le message de demande.
<! - # echo var = rote_host ->
Remote_addr: affiche l'adresse IP du client qui a publié les informations de demande.
<! - # echo var = rote_addr ->
AUTH_TYPE: Affiche la méthode d'authentification de l'identité de l'utilisateur.
<! - # echo var = auth_type ->
Remote_user: affiche le nom de compte utilisé par l'utilisateur accédant à la page protégée.
<! - # echo var = rote_user ->
4. Fsize: affiche la taille du fichier spécifié. Vous pouvez personnaliser le format de sortie avec le paramètre sizefmt de la commande config.
<! - # fsize file = index_working.html ->
5. FlastMod: affiche la dernière date de modification du fichier spécifié. Vous pouvez contrôler le format de sortie avec le paramètre TIMEFMT de la commande Config.
<! - # configTimefmt =% a, le% d de% b, dans l'année% y ->
<! - # flastmod file = file.html ->
Ici, nous pouvons utiliser le paramètre FlastMod pour afficher la date de mise à jour de toutes les pages liées sur une page. La méthode est la suivante:
<! - # configTimefmt =% b% d,% y ->
<A href = / répertoire / file.html> fichier </a>
<! - # flastmod virtual = / répertoire / file.html ->
<A href = / autre_directory / autre_file.html> un autre fichier </a>
<! - # flastmod virtual = / autre_directory / autre_file.html ->
Les résultats sont affichés comme:
Dossier 19 avril 2000
Un autre fichier 08 janvier 2000
6. Exec
La commande exec peut exécuter des scripts CGI ou des commandes shell. Comment l'utiliser est comme suit:
CMD: utilisez / bin / sh pour exécuter la chaîne spécifiée. Si SSI utilise l'option InclutNoExec, la commande sera bloquée.
CGI: Peut être utilisé pour exécuter les scripts CGI. Par exemple, dans l'exemple suivant, utilisez le programme de script compteur.pl dans le répertoire du serveur CGI-Bin pour placer un compteur sur chaque page:
<! - # exec cgi = / cgi-bin / compteur.pl ->