Webbserverkatalogindex
När en HTTP- klient (vanligtvis en webbläsare ) begär en URL som pekar på en katalogstruktur istället för en faktisk webbsida inom katalogstrukturen, kommer webbservern i allmänhet att tjäna en standardsida, som ofta kallas en huvudsida eller " index" sida.
Ett vanligt filnamn för en sådan sida är index. html
, men de flesta moderna HTTP-servrar erbjuder en konfigurerbar lista med filnamn som servern kan använda som ett index. Om en server är konfigurerad för att stödja server-side scripting kommer listan vanligtvis att innehålla poster som tillåter dynamiskt innehåll att användas som indexsida (t.ex. index. cgi
, index. pl
, index. php
, index. shtml
, index. jsp
, default. asp
) även om det kan vara mer lämpligt att fortfarande ange HTML-utdata ( index.html.php
eller index.html.aspx
), eftersom detta inte bör tas för givet. Ett exempel är den populära webbservern med öppen källkod Apache , där listan över filnamn styrs av DirectoryIndex-
direktivet i huvudserverns konfigurationsfil eller i konfigurationsfilen för den katalogen . Det är möjligt att inte använda filtillägg alls, och vara neutral till innehållsleveransmetoder och ställa in servern att automatiskt välja den bästa filen genom innehållsförhandling .
Om servern inte kan hitta en fil med något av namnen som anges i dess konfiguration kan den antingen returnera ett fel (vanligtvis 403 Index Listing Forbidden eller 404 Not Found ) eller generera en egen indexsida som listar filerna i katalogen. Vanligtvis är det här alternativet, ofta kallat autoindex
, också konfigurerbart.
Historia
Ett schema där webbservern serverar en standardfil på basis av underkataloger har stöds så tidigt som NCSA HTTPd 0.3beta (22 april 1993), som som standard serverar index.html-
filen i katalogen. Detta schema har sedan antagits av CERN HTTPd sedan åtminstone 2.17beta (5 april 1994), vars standard stöder Welcome.html
och welcome.html
förutom NCSA-ursprunget index.html
.
Senare webbservrar stöder vanligtvis detta standardfilschema i en eller annan form; detta är vanligtvis konfigurerbart, med index.html
som ett av standardfilnamnen.
Genomförande
I vissa fall kan hemsidan för en webbplats vara en meny med språkalternativ för stora webbplatser som använder geografisk inriktning . Det är också möjligt att undvika detta steg, till exempel genom att använda innehållsförhandling .
I de fall där ingen känd index.*-
fil finns i en given katalog, kan webbservern konfigureras för att tillhandahålla en automatiskt genererad lista över filerna i katalogen istället. Med Apache-webbservern, till exempel, tillhandahålls detta beteende av mod_autoindex-modulen och kontrolleras av Options +Index-
direktivet i webbserverns konfigurationsfiler . Dessa automatiska kataloglistor är ibland en säkerhetsrisk eftersom de räknar upp känsliga filer som kanske inte är avsedda för allmän åtkomst, i en process som kallas en katalogindexeringsattack. En sådan säkerhetsfelkonfiguration kan också hjälpa till vid andra attacker, till exempel en väg- eller katalogövergångsattack .
Föreställningar
När du kommer åt en katalog kan de olika tillgängliga indexmetoderna också ha olika inverkan på användningen av OS-resurser ( RAM , CPU-tid , etc.) och därmed på webbserverns prestanda.
Gå från snabbaste till långsammaste metoden, här är listan:
- använder en statisk indexfil, t.ex.:
index.html
, etc.; - använda en webbserverfunktion som vanligtvis kallas autoindex (när ingen indexfil existerar) för att låta webbservern autogenerera kataloglistning genom att använda dess interna modul;
- använda en tolkad fil som läses av webbserverns interna programtolk, t.ex.:
index.php
; - med ett körbart och kompilerat CGI-program, t.ex.:
index.cgi
.