Cuando un cliente HTTP (generalmente un navegador web ) solicita una URL que apunta a una estructura de directorio en lugar de una página web real dentro de la estructura de directorio, el servidor web generalmente servirá una página predeterminada, a menudo denominada página principal o "índice".
Un nombre de archivo común para una página de este tipo es , pero la mayoría de los servidores HTTP modernos ofrecen una lista configurable de nombres de archivos que el servidor puede usar como índice. Si un servidor está configurado para admitir secuencias de comandos del lado del servidor , la lista generalmente incluirá entradas que permitan usar contenido dinámico como página de índice (por ejemplo , , , , , ) aunque puede ser más apropiado especificar la salida HTML ( o ), ya que esto no debe darse por sentado. Un ejemplo es el popular servidor web de código abierto Apache , donde la lista de nombres de archivos está controlada por la directiva [1] en el archivo de configuración del servidor principal o en el archivo de configuración para ese directorio . Es posible no usar extensiones de archivo en absoluto, y ser neutral con respecto a los métodos de entrega de contenido, y configurar el servidor para que elija automáticamente el mejor archivo a través de la negociación de contenido .index.html
index.cgi
index.pl
index.php
index.shtml
index.jsp
default.asp
index.html.php
index.html.aspx
DirectoryIndex
Si el servidor no puede encontrar un archivo con ninguno de los nombres que aparecen en su configuración, puede devolver un error (normalmente 403 Index Listing Forbidden o 404 Not Found ) o generar su propia página de índice que incluya los archivos del directorio. Normalmente, esta opción, a menudo denominada autoindex
, también es configurable. [2]
Un esquema en el que el servidor web sirve un archivo predeterminado por subdirectorio ya se admitía en NCSA HTTPd 0.3beta (22 de abril de 1993), [3] que por defecto sirve index.html
el archivo en el directorio. [3] [4] Este esquema fue adoptado por CERN HTTPd desde al menos 2.17beta (5 de abril de 1994), cuyo valor predeterminado admite Welcome.html
y welcome.html
además del . de origen NCSA index.html
. [5]
Los servidores web posteriores suelen admitir este esquema de archivo predeterminado de una forma u otra; esto suele ser configurable, siendo index.html
uno de los nombres de archivo predeterminados. [6] [7] [8]
En algunos casos, la página de inicio de un sitio web puede ser un menú de opciones de idioma para sitios grandes que utilizan geotargeting . También es posible evitar este paso, por ejemplo, utilizando la negociación de contenido .
En los casos en los que no existe ningún archivo conocido index.*
dentro de un directorio determinado, el servidor web puede configurarse para proporcionar un listado generado automáticamente de los archivos dentro del directorio. Con el servidor web Apache, por ejemplo, este comportamiento lo proporciona el módulo mod_autoindex [9] y lo controla la Options +Indexes
directiva [10] en los archivos de configuración del servidor web . Estos listados de directorios automatizados a veces son un riesgo de seguridad porque enumeran archivos confidenciales que pueden no estar destinados al acceso público, en un proceso conocido como ataque de indexación de directorios. [11] Una configuración de seguridad incorrecta de este tipo [12] también puede ayudar en otros ataques, como un ataque de recorrido de ruta o directorio . [13]
Al acceder a un directorio, los distintos métodos de índice disponibles también pueden tener un impacto diferente en el uso de los recursos del sistema operativo ( RAM , tiempo de CPU , etc.) y, por lo tanto, en el rendimiento del servidor web.
Procediendo del método más rápido al más lento , aquí está la lista:
index.html
, etc.;index.php
;index.cgi
.