Indholdsforhandling

Hvordan ved serveren hvilke filer den skal levere?

Som du måske har bemærket slutter interne links ikke på .html. Dette skyldes at serveren anvender indholdsforhandling ("content negotiation") til at afgøre hvilken udgave af dokumentet, den skal levere. Når der er mere end én valgmulighed vil serveren lave en liste over alle filer den kan levere, for eksempel hvis der er blevet bedt om 'about', kan listen over mulige filer indeholde about.en.html og about.da.html. Som standard leverer Debian-servere engelske dokumenter, men det kan ændres i opsætningen.

Hvis den rette variabel er opsat i en klient, for eksempel til at bede om danske dokumenter, så ville about.da.html fra eksemplet ovenfor blive leveret. Det smarte ved dette er, at hvis det ønskede sprog ikke er tilgængeligt, vil et andet sprog blive leveret i stedet for (som forhåbentlig er bedre end ingenting). Det er lidt forvirrende hvad der afgører hvilket dokument der skal leveres, så i stedet for at beskrive det her, kan du få det definitive svar på http://httpd.apache.org/docs/content-negotiation.html, hvis det har interesse.

Da mange brugere ikke véd, at der er noget som hedder indholdsforhandling, er der i bunden af hver side links som peger direkte på udgaven af siden i alle tilgængelige sprog. Dette klares ved hjælp af et Perl-script som wml kalder når siden genereres.