Cuando un cliente HTTP (generalmente un navegador web ) solicita una URL que apunta a una estructura de directorios en lugar de a una página web real dentro de la estructura de directorios, el servidor web generalmente ofrecerá una página predeterminada, a la que a menudo se hace referencia como principal o " Página de inicio .
Un nombre de archivo común para dicha página es , pero la mayoría de los servidores HTTP modernos ofrecen una lista configurable de nombres de archivo 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 utilizar contenido dinámico como página de índice (por ejemplo , , , , , ), aunque puede ser más apropiado seguir especificando 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 de ese directorio . Es posible no utilizar extensiones de archivo en absoluto, ser neutral con respecto a los métodos de entrega de contenido y configurar el servidor para que elija automáticamente el mejor archivo mediante 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 enumerados en su configuración, puede devolver un error (generalmente 403 Listado de índice prohibido o 404 No encontrado ) o generar su propia página de índice que enumera los archivos en el directorio. Normalmente esta opción, a menudo denominada autoindex
, también es configurable. [2]
Ya en NCSA HTTPd 0.3beta (22 de abril de 1993), [3] se admite un esquema en el que el servidor web sirve un archivo predeterminado por subdirectorio, [3] que de forma predeterminada sirve index.html
el archivo en el directorio. [3] [4] Este esquema ha sido adoptado por CERN HTTPd desde al menos 2.17beta (5 de abril de 1994), cuyo soporte predeterminado Welcome.html
y welcome.html
además del originado por NCSA index.html
. [5]
Los servidores web posteriores suelen admitir este esquema de archivos predeterminado de una forma u otra; Esto suele ser configurable y index.html
es 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 orientación geográfica . También es posible evitar este paso, por ejemplo, utilizando la negociación de contenidos .
En los casos en que no index.*
exista ningún archivo conocido dentro de un directorio determinado, el servidor web puede configurarse para proporcionar una lista generada 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 suponen un riesgo para la 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] Esta mala configuración de seguridad [12] también puede ayudar en otros ataques, como un ataque transversal 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 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
.