Server Side Includes

Les Server Side Includes, abrégés SSI, sont un langage de programmation fait pour être interprété par un serveur HTTP lorsqu'il sert un document HTML. Ce langage tire son nom de sa principale utilisation : inclure plusieurs fichiers pour construire et servir à la demande un document HTML.

## Rôle

[modifier | modifier le code]

Les SSI facilitent la maintenance des sites web en permettant de conserver dans un seul fichier les parties de page web qui se retrouvent à l'identique dans toutes les pages du site. Il s'agit souvent de l'en-tête et du pied de page, qui contiennent des informations comme le nom du site, les coordonnées de son auteur, etc.

## Syntaxe

[modifier | modifier le code]

Les directives SSI ont la syntaxe suivante : `<!--#directive paramètre="valeur" -->`.

<!--#include file="entete.html" -->
<p>Le répertoire contient les fichiers suivants&nbsp;:</p>
<pre><!--#exec cmd="ls"--></pre>
<!--#include file="pied.html" -->

On remarque que ces directives sont des commentaires SGML.

## Prise en charge des serveurs HTTP

[modifier | modifier le code]

Les SSI sont apparues rapidement dans l'histoire du World Wide Web. Par la suite, elles ont été éclipsées par les langages comme PHP et Active server pages.

Le module `mod_include` du Apache HTTP Server est fréquemment utilisé pour interpréter les SSI. L'extension de nom de fichier `.shtml` est fréquemment utilisée pour identifier les fichiers que le serveur HTTP doit interpréter. Un autre moyen d'identifier les fichiers HTML à interpréter sans changer leur nom consiste à les marquer comme exécutables (directive `XBitHack` de `mod_include`).

## Voir aussi

[modifier | modifier le code]

### Articles connexes

[modifier | modifier le code]

* Apache HTTP Server
* Site web
* PHP: Hypertext Preprocessor, Active server pages

### Liens externes

[modifier | modifier le code]

* (en) Apache Module mod_include, documentation Apache 2.2
* (en) Apache Tutorial: Introduction to Server Side Includes, tutoriel pour Apache 1.3

* Portail de l’informatique

*[(en)]: Langue : anglais