Web servera direktoriju indekss

[thumb| [http://www.wikipedia.org www.wikipedia.org], daudzvalodu tiešsaistes enciklopēdijas Wikipedia rādītājs. Šeit vietnes [Mājaslapa|sākumlapa piedāvā dažādas valodas.]]
Kad HTTP klients (parasti tīmekļa pārlūkprogramma) pieprasa URL, kas norāda uz direktoriju struktūru, nevis uz faktisko tīmekļa lapu direktoriju struktūrā, tīmekļa serveris parasti piegādās noklusējuma lapu, ko bieži dēvē par galveno vai "index" (rādītāja) lapu.

Parasti šādas lapas faila nosaukums ir `'''index.[[HTML|html]]'''`, taču lielākā daļa mūsdienu HTTP serveru piedāvā konfigurējamu failu nosaukumu sarakstu, ko serveris var izmantot kā indeksu. Ja serveris ir konfigurēts, lai atbalstītu servera puses skriptēšanu, sarakstā parasti ir iekļauti ieraksti, kas ļauj dinamisku saturu izmantot kā rādītāja (index) lapu (piemēram, `index.cgi`, `index.[[Perl|pl]]`, `index.[[PHP|php]]`, `index.shtml`, `index.[[JavaServer Pages|jsp]]`, `default.[[Active Server Pages|asp]]` ), lai gan piemērotāk būtu norādīt HTML izvadi (`index.html.php` vai `index.html.aspx` ), jo to nevajadzētu uzskatīt par pašsaprotamu. Piemērs ir populārais atvērtā pirmkoda tīmekļa serveris ''Apache'', kur failu nosaukumu sarakstu kontrolē 
```apache
DirectoryIndex
```
 direktīva galvenā servera konfigurācijas failā vai šīs direktorijas konfigurācijas failā. Ir iespējams vispār neizmantot failu paplašinājumus un būt neitrāliem pret satura piegādes metodēm, kā konfigurēt iestatījumus, lai serveris automātiski izvēlētos labāko failu satura sarunās.

Ja serveris nevar atrast failu ar kādu no tā konfigurācijā norādītajiem nosaukumiem, tas var vai nu atgriezt kļūdu (parasti 403 Index Listing Forbidden vai 404 Not Found), vai arī ģenerē savu rādītāja lapu, kurā uzskaitīti direktorijā esošie faili. Parasti šī opcija, ko bieži sauc par `autoindex`, ir arī konfigurējama.

## Vēsture
Shēmu, kurā tīmekļa serveris apkalpo noklusējuma failu, pamatojoties uz katru apakšdirektoriju, atbalstīta jau NCSA HTTPd 0.3beta (1993. gada 22. aprīlis), kas pēc noklusējuma apkalpo `index.html` failu direktorijā. Pēc tam šo shēmu izmantoja CERN HTTPd kopš versijas 2.17beta (1994. gada 5. aprīlis), kuras noklusējuma iestatījumi atbalsta `Welcome.html` un `welcome.html` papildus NCSA izcelsmes `index.html`.

Vēlāk tīmekļa serveri atbalsta šo noklusējuma failu shēmu vienā vai otrā veidā - to parasti var konfigurēt ar `index.html,` to norādot kā vienu no noklusējuma faila nosaukumiem.

## Piemērošana
Lielām tīmekļa vietnēm, kurās tiek izmantota ģeogrāfiskā mērķauditorijas atlase, mājaslapa dažkārt var būt valodas izvēlnes piedāvājums. No šī soļa ir iespējams arī izvairīties, piemēram, izmantojot satura sarunas.

Gadījumos, kad konkrētajā direktorijā nav zināms `index.*` fails, tīmekļa serveris var tikt konfigurēts tā, lai tā vietā nodrošinātu direktorijā esošo failu automātiski ģenerētu sarakstu. Piemēram, Apache tīmekļa serverī šo darbību nodrošina modulis mod_autoindex, un to kontrolē `Options +Indexes` direktīva tīmekļa servera konfigurācijas failos. Šie automatizētie *direktoriju saraksti* dažkārt rada drošības risku, jo tajos ir uzskaitīti sensitīvi faili, kas var nebūt paredzēti publiskai piekļuvei procesā, kas tiek dēvēts par direktoriju indeksēšanas uzbrukumu. Šāda drošības iestatījumu nepareiza konfigurācija var atvieglot arī citus uzbrukumus, piemēram, ceļu vai direktoriju šķērsošanas uzbrukumus.

## Izpilde
Piekļūstot direktorijam, dažādas indeksa metodes var atšķirīgi ietekmēt operētājsistēmas resursu izmantošanu (RAM, CPU laiku utt.) un tādējādi ietekmējot arī tīmekļa servera veiktspēju.

Saraksts pārejai no *ātrākās* uz *lēnāko* metodi:

* izmantojot statisku indeksa failu, piemēram: `index.html` utt.;
* izmantojot tīmekļa servera līdzekli, ko parasti sauc par *automātisko* indeksu (ja indeksa fails nepastāv), lai ļautu tīmekļa serverim automātiski ģenerēt direktoriju sarakstu, izmantojot tā iekšējo moduli;
* izmantojot interpretētu failu, ko nolasa tīmekļa servera iekšējais programmu tulks, piemēram: `index.php`;
* izmantojot CGI izpildāmu un kompilētu programmu, piemēram: `index.cgi`.

## Atsauces