Когда HTTP- клиент (обычно веб-браузер ) запрашивает URL-адрес , указывающий на структуру каталогов, а не на фактическую веб-страницу в структуре каталогов, веб-сервер обычно предоставляет страницу по умолчанию, которую часто называют главной или «индексной» страницей.
Распространенным именем файла для такой страницы является , но большинство современных HTTP-серверов предлагают настраиваемый список имен файлов, которые сервер может использовать в качестве индекса. Если сервер настроен для поддержки серверных скриптов , список обычно будет включать записи, позволяющие использовать динамическое содержимое в качестве страницы индекса (например , , , , , , ), хотя может быть более уместным все же указать вывод HTML ( или ), поскольку это не следует воспринимать как должное. Примером является популярный веб-сервер с открытым исходным кодом Apache , где список имен файлов контролируется директивой [1] в основном файле конфигурации сервера или в файле конфигурации для этого каталога . Можно вообще не использовать расширения файлов и быть нейтральным к методам доставки содержимого, а также настроить сервер на автоматический выбор лучшего файла посредством согласования содержимого .index.html
index.cgi
index.pl
index.php
index.shtml
index.jsp
default.asp
index.html.php
index.html.aspx
DirectoryIndex
Если сервер не может найти файл с любым из имен, перечисленных в его конфигурации, он может либо вернуть ошибку (обычно 403 Index Listing Forbidden или 404 Not Found ), либо сгенерировать собственную страницу индекса со списком файлов в каталоге. Обычно эта опция, часто называемая autoindex
, также настраивается. [2]
Схема, в которой веб-сервер обслуживает файл по умолчанию для каждого подкаталога, поддерживалась еще в NCSA HTTPd 0.3beta (22 апреля 1993 г.), [3] которая по умолчанию обслуживает index.html
файл в каталоге. [3] [4] Затем эта схема была принята CERN HTTPd по крайней мере с версии 2.17beta (5 апреля 1994 г.), которая по умолчанию поддерживает Welcome.html
и welcome.html
в дополнение к NCSA-инициализированному index.html
. [5]
Более поздние веб-серверы обычно поддерживают эту схему файлов по умолчанию в той или иной форме; обычно это можно настроить, используя index.html
одно из имен файлов по умолчанию. [6] [7] [8]
В некоторых случаях домашняя страница веб-сайта может быть меню языковых опций для крупных сайтов, использующих геотаргетинг . Также можно избежать этого шага, например, используя согласование контента .
В случаях, когда index.*
в указанном каталоге нет известных файлов, веб-сервер может быть настроен на предоставление автоматически сгенерированного списка файлов в каталоге вместо этого. Например, с веб-сервером Apache это поведение обеспечивается модулем mod_autoindex [9] и контролируется директивой Options +Indexes
[ 10] в файлах конфигурации веб-сервера . Эти автоматизированные списки каталогов иногда представляют угрозу безопасности, поскольку они перечисляют конфиденциальные файлы, которые могут не быть предназначены для публичного доступа, в процессе, известном как атака индексации каталога. [11] Такая неправильная конфигурация безопасности [12] может также способствовать другим атакам, таким как атака обхода пути или каталога . [13]
При доступе к каталогу различные доступные методы индексации могут также по-разному влиять на использование ресурсов ОС ( ОЗУ , процессорного времени и т. д.) и, следовательно, на производительность веб-сервера.
Вот список, начиная с самого быстрого метода и заканчивая самым медленным :
index.html
и т.д.;index.php
;index.cgi
.