Webserverkatalogindex

Article

July 5, 2022

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 i 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 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.

Historik

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 utöver det NCSA-ursprungliga 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.

Implementering

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 inom 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 styrs av Options +Index-direktivet i webbserverns konfigurationsfiler. Dessa automatiserade kataloglistor är ibland en säkerhetsrisk eftersom de räknar upp känsliga filer som kanske inte är avsedda för allmänhetens å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. Fortsätt från den snabbaste till den långsammaste metoden, här är listan: använda 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.

Referenser