Índice do diretório do servidor web

Article

July 5, 2022

Quando um cliente HTTP (geralmente um navegador da Web) solicita uma URL que aponta para uma estrutura de diretórios em vez de uma página da Web real dentro da estrutura de diretórios, o servidor da Web geralmente servirá uma página padrão, que geralmente é chamada de main ou " página "índice". Um nome de arquivo comum para essa página é index.html, mas a maioria dos servidores HTTP modernos oferece uma lista configurável de nomes de arquivos que o servidor pode usar como índice. Se um servidor estiver configurado para suportar scripts do lado do servidor, a lista geralmente incluirá entradas que permitem que o conteúdo dinâmico seja usado como página de índice (por exemplo, index.cgi, index.pl, index.php, index.shtml, index.jsp, default.asp) mesmo que seja mais apropriado especificar a saída HTML (index.html.php ou index.html.aspx), pois isso não deve ser considerado como garantido. Um exemplo é o popular servidor web de código aberto Apache, onde a lista de nomes de arquivos é controlada pela diretiva DirectoryIndex no arquivo de configuração do servidor principal ou no arquivo de configuração desse diretório. É possível não usar extensões de arquivo, ser neutro em relação aos métodos de entrega de conteúdo e configurar o servidor para selecionar automaticamente o melhor arquivo por meio da negociação de conteúdo. Se o servidor não conseguir localizar um arquivo com qualquer um dos nomes listados em sua configuração, ele poderá retornar um erro (geralmente 403 Index Listing Forbidden ou 404 Not Found) ou gerar sua própria página de índice listando os arquivos no diretório. Normalmente, essa opção, geralmente chamada de autoindex, também é configurável.

História

Um esquema em que o servidor web serve um arquivo padrão por subdiretório foi suportado desde o NCSA HTTPd 0.3beta (22 de abril de 1993), cujo padrão é servir o arquivo index.html no diretório. Este esquema foi então adotado pelo CERN HTTPd desde pelo menos 2.17beta (5 de abril de 1994), cujo padrão suporta Welcome.html e welcome.html além do index.html originado pelo NCSA. Os servidores web posteriores normalmente suportam este esquema de arquivo padrão de uma forma ou de outra; isso geralmente é configurável, com index.html sendo um dos nomes de arquivo padrão.

Implementação

Em alguns casos, a página inicial de um site pode ser um menu de opções de idioma para sites grandes que usam segmentação geográfica. Também é possível evitar essa etapa, por exemplo, usando a negociação de conteúdo. Nos casos em que não existe nenhum arquivo index.* conhecido dentro de um determinado diretório, o servidor web pode ser configurado para fornecer uma listagem gerada automaticamente dos arquivos dentro do diretório. Com o servidor web Apache, por exemplo, este comportamento é fornecido pelo módulo mod_autoindex e controlado pela diretiva Options +Indexes nos arquivos de configuração do servidor web. Essas listagens de diretório automatizadas às vezes são um risco de segurança porque enumeram arquivos confidenciais que podem não ser destinados ao acesso público, em um processo conhecido como ataque de indexação de diretório. Essa configuração incorreta de segurança também pode ajudar em outros ataques, como um ataque de caminho ou de passagem de diretório.

Desempenho

Ao acessar um diretório, os vários métodos de indexação disponíveis também podem ter um impacto diferente no uso dos recursos do SO (RAM, tempo de CPU, etc.) e, portanto, no desempenho do servidor web. Procedendo do método mais rápido para o mais lento, aqui está a lista: usando um arquivo de índice estático, por exemplo: index.html, etc.; usando um recurso de servidor web geralmente chamado autoindex (quando não existe nenhum arquivo de índice) para permitir que o servidor web gere automaticamente a listagem de diretórios usando seu módulo interno; usando um arquivo interpretado lido pelo interpretador de programa interno do servidor web, por exemplo: index.php; usando um programa executável e compilado CGI, por exemplo: index.cgi.

Referências