Индекс каталога веб-сервера

Article

July 4, 2022

Когда HTTP-клиент (как правило, веб-браузер) запрашивает URL-адрес, который указывает на структуру каталогов, а не на реальную веб-страницу в структуре каталогов, веб-сервер обычно обслуживает страницу по умолчанию, которую часто называют основной или " индексная страница. Обычное имя файла для такой страницы — index.html, но большинство современных HTTP-серверов предлагают настраиваемый список имен файлов, которые сервер может использовать в качестве индекса. Если сервер настроен на поддержку сценариев на стороне сервера, список обычно включает записи, позволяющие использовать динамическое содержимое в качестве индексной страницы (например, index.cgi, index.pl, index.php, index.shtml, index.jsp, default.asp), хотя может быть более уместным по-прежнему указывать вывод HTML (index.html.php или index.html.aspx), так как это не следует воспринимать как должное. Примером может служить популярный веб-сервер с открытым исходным кодом Apache, где список имен файлов контролируется директивой DirectoryIndex в файле конфигурации основного сервера или в файле конфигурации для этого каталога. Можно вообще не использовать расширения файлов, быть нейтральным к методам доставки контента и настроить сервер на автоматический выбор лучшего файла посредством согласования контента. Если сервер не может найти файл с каким-либо из имен, перечисленных в его конфигурации, он может либо вернуть ошибку (обычно 403 Index Listing Forbidden или 404 Not Found), либо создать свою собственную индексную страницу со списком файлов в каталоге. Обычно этот параметр, часто называемый автоиндексированием, также настраивается.

История

Схема, в которой веб-сервер обслуживает файл по умолчанию для каждого подкаталога, поддерживалась еще в версии NCSA HTTPd 0.3beta (22 апреля 1993 г.), которая по умолчанию обслуживает файл index.html в каталоге. Затем эта схема была принята CERN HTTPd, по крайней мере, с версии 2.17beta (5 апреля 1994 г.), которая по умолчанию поддерживает Welcome.html и welcome.html в дополнение к созданному NCSA index.html. Более поздние веб-серверы обычно поддерживают эту файловую схему по умолчанию. в той или иной форме; обычно это настраивается, при этом index.html является одним из имен файлов по умолчанию.

Реализация

В некоторых случаях главная страница веб-сайта может представлять собой меню языковых параметров для крупных сайтов, использующих геотаргетинг. Также можно избежать этого шага, например, используя согласование содержимого. В тех случаях, когда в заданном каталоге не существует известного файла index.*, веб-сервер может быть настроен на предоставление вместо этого автоматически сгенерированного списка файлов в каталоге. Например, для веб-сервера Apache такое поведение обеспечивается модулем mod_autoindex и управляется директивой Options +Indexes в файлах конфигурации веб-сервера. Эти автоматические списки каталогов иногда представляют угрозу безопасности, поскольку они перечисляют конфиденциальные файлы, которые могут быть не предназначены для общего доступа, в процессе, известном как атака индексации каталогов. Такая неправильная конфигурация безопасности может также помочь в других атаках, таких как атака с обходом пути или каталога.

Выступления

При доступе к каталогу различные доступные методы индексирования также могут по-разному влиять на использование ресурсов ОС (ОЗУ, процессорное время и т. д.) и, следовательно, на производительность веб-сервера. В порядке от самого быстрого к самому медленному, вот список: использование файла статического индекса, например: index.html и т. д.; использование функции веб-сервера, обычно называемой автоиндексом (когда индексный файл не существует), чтобы позволить веб-серверу автоматически генерировать список каталогов с помощью своего внутреннего модуля; использование интерпретируемого файла, прочитанного интерпретатором внутренней программы веб-сервера, например: index.php; используя исполняемую и скомпилированную программу CGI, например: index.cgi.

Ссылки