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

Article

July 5, 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 Список індексів заборонено або 404 Не знайдено), або створити власну сторінку індексу зі списком файлів у каталозі. Зазвичай цей параметр, який часто називають автоіндексом, також можна налаштувати.

Історія

Схема, за якою веб-сервер обслуговує файл за замовчуванням для кожного підкаталогу, підтримувалася ще в 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 у файлах конфігурації веб-сервера. Ці автоматизовані списки каталогів іноді становлять загрозу безпеці, оскільки вони перераховують конфіденційні файли, які можуть бути не призначені для загального доступу, у процесі, відомому як атака індексування каталогу. Така неправильна конфігурація безпеки також може сприяти іншим атакам, таким як атака шляхом обходу шляху або каталогу.

Виступи

Під час доступу до каталогу різні доступні методи індексування також можуть по-різному впливати на використання ресурсів ОС (RAM, час ЦП тощо) і, отже, на продуктивність веб-сервера. Переходячи від найшвидшого до найповільнішого методу, ось список: використання статичного файлу індексу, наприклад: index.html тощо; використання функції веб-сервера, яка зазвичай називається autoindex (якщо файл індексу не існує), щоб дозволити веб-серверу автоматично генерувати список каталогів за допомогою свого внутрішнього модуля; використання інтерпретованого файлу, зчитаного внутрішнім програмним інтерпретатором веб-сервера, наприклад: index.php; за допомогою виконуваного файлу CGI та скомпільованої програми, наприклад: index.cgi.

Література