Индекс каталога веб-сервера
Когда 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
[1] директива в главном файле конфигурации сервера или в файле конфигурации для этого каталога . Можно вообще не использовать расширения файлов, быть нейтральным к методам доставки контента и настроить сервер на автоматический выбор лучшего файла посредством согласования контента .
Если серверу не удается найти файл с любым из имен, перечисленных в его конфигурации, он может либо вернуть ошибку (обычно 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
; - используя исполняемую и скомпилированную программу CGI, например:
index.cgi
.
Ссылки
[ редактировать ]- ^ «mod_dir — HTTP-сервер Apache» . httpd.apache.org . Проверено 30 мая 2014 г.
- ^ АФС Инфработ (22 мая 2019 г.). «Списки каталогов» . Основа Apache: проект HTTPd-сервера . Проверено 16 ноября 2021 г.
- ^ Перейти обратно: а б «WWW-Talk, апрель-июнь 1993 г.: NCSA httpd, версия 0.3» . 1997.webhistory.org .
- ^ «Индекс каталога NCSA HTTPd» . 31 января 2009 г. Архивировано из оригинала 31 января 2009 г.
- ^ «История изменений W3C httpd» . 5 июня 1997 г. Архивировано из оригинала 5 июня 1997 г.
- ^ «mod_dir — HTTP-сервер Apache версии 2.4 § Директива DirectoryIndex» . httpd.apache.org . Архивировано из оригинала 12 ноября 2020 г. Проверено 13 января 2021 г.
- ^ «Документация NGINX | Обслуживание статического контента» . docs.nginx.com . Архивировано из оригинала 11 ноября 2020 г. Проверено 13 января 2021 г.
- ^ «Документ по умолчанию <defaultDocument> | Microsoft Docs» . docs.microsoft.com . Архивировано из оригинала 08.12.2020 . Проверено 13 января 2021 г.
- ^ «mod_autoindex — HTTP-сервер Apache версии 2.4» . httpd.apache.org . Проверено 13 января 2021 г.
- ^ «ядро — HTTP-сервер Apache версии 2.4 § Директива опций» . httpd.apache.org . Проверено 13 января 2021 г.
- ^ «Документация IBM» . ИБМ . 08.03.2021 . Проверено 7 мая 2021 г.
- ^ «A6:2017-Неправильная конфигурация безопасности» . ОВАСП . Проверено 7 мая 2021 г.
- ^ «Обход пути» . ОВАСП . Проверено 7 мая 2021 г.