Index de répertoire de serveur Web
Lorsqu'un client HTTP (généralement un navigateur Web ) demande une URL qui pointe vers une structure de répertoires au lieu d'une page Web réelle dans le répertoire, le serveur Web affichera généralement une page par défaut, souvent appelée "index".
Un nom de fichier courant pour ce type de page est index.html
, mais la plupart des serveurs HTTP modernes offrent une liste configurable de noms de fichiers que le serveur peut utiliser à la place d'"index". Si un serveur est configuré pour prendre en charge les scripts côté serveur, la liste comprendra généralement des choix permettant d'utiliser un contenu dynamique comme page index (par exemple: index.php
, index.shtml
, index.jsp
, default.asp
) même s'il est préférable de toujours spécifier la sortie HTML ( index.html.php
ou index.html.aspx
), car cela ne doit pas être tenu pour acquis. Par exemple, le célèbre serveur Web open source "Apache", où la liste des noms de fichiers est déterminée par la directive DirectoryIndex
[1] dans le fichier de configuration du serveur principal ou dans le fichier de configuration de ce répertoire . Il est possible de se passer des extensions de fichiers, d'être neutre vis-à-vis des méthodes de livraison de contenu et de configurer le serveur pour qu'il sélectionne automatiquement le meilleur fichier via la négociation de contenu .
Si le serveur ne parvient pas à trouver un fichier avec l'un des noms répertoriés dans sa configuration, il peut soit renvoyer une erreur (généralement 404 Not Found ) ou générer sa propre page d'index répertoriant les fichiers dans le répertoire. Il peut également renvoyer une Erreur 403 accès à la liste d'index interdite . Habituellement, cette option, également, est configurable.
Historique
Un fonctionnement où le serveur Web fourni un fichier par défaut sur une base de sous-répertoire a été pris en charge dès NCSA HTTPd 0.3beta (22 avril 1993)[2], qui sert par défaut l'index.html
dans le répertoire[3]. Ce fonctionnement a ensuite été adopté par CERN HTTPd depuis au moins la version 2.17beta (5 avril 1994), qui par défaut prend en charge Welcome.html
et welcome.html
en plus de l' index.html
de NCSA[4].
Les serveurs Web ultérieurs prennent généralement en charge ce schéma de fichiers par défaut sous une forme ou une autre; il est généralement configurable, index.html
étant l'un des noms de fichier par défaut[5] - [6] - [7].
Implémentation
Étant donné que la page d'index du répertoire racine du site Web est souvent la première page d'un site qu'un utilisateur voit, elle est parfois utilisée pour offrir un menu d' options de langue pour les grands sites Web qui utilisent le ciblage géographique . Il est également possible d'éviter cette étape, par exemple en utilisant la négociation de contenu .
Dans les cas où aucun index.html
n'existe dans un répertoire donné, le serveur Web peut être configuré pour fournir, à la place, une liste générée automatiquement des fichiers dans le répertoire. Avec le serveur Web Apache, par exemple, ce comportement est fourni par le module mod_autoindex [8] et contrôlé par la directive Options +Indexes
[9] dans les fichiers de configuration du serveur Web.
Notes et références
- « mod_dir - Apache HTTP Server », httpd.apache.org (consulté le )
- « WWW-Talk Apr-Jun 1993: NCSA httpd version 0.3 », 1997.webhistory.org
- « NCSA HTTPd DirectoryIndex » [archive du ],
- « Change History of W3C httpd » [archive du ],
- « mod_dir - Apache HTTP Server Version 2.4 § DirectoryIndex Directive » [archive du ], httpd.apache.org (consulté le )
- « NGINX Docs | Serving Static Content » [archive du ], docs.nginx.com (consulté le )
- « Default Document <defaultDocument> | Microsoft Docs » [archive du ], docs.microsoft.com (consulté le )
- « mod_autoindex - Apache HTTP Server Version 2.4 », httpd.apache.org (consulté le )
- « core - Apache HTTP Server Version 2.4 § Options Directive », httpd.apache.org (consulté le )