Negocjowanie zawartości

Skąd serwer wie, który plik obsługiwać

Zapewne zauważyłeś, że linki wewnętrzne nie kończą się na .html. Tak się dzieje, ponieważ serwer używa negocjowania zawartości, żeby zadecydować, która wersja dokumentu zostanie dostarczona. Jeśli jest jakiś wybór, serwer sporządza listę wszystkich dostępnych plików, np. na zapytanie o dokument 'O Debianie' (about), lista wynikowa może zawierać about.en.html, about.de.html, about.pl.html itd. Domyślnie obsługiwane są strony angielskie, ale jest to konfigurowalne.

Jeśli klient ma właściwą wartość zmiennej, np. do obsługi języka niemieckiego, z naszego przykładu zostanie wysłana mu strona about.de.html. Przyjemne jest to, że jeśli pożądany język nie jest dostępny, dostarczona zostanie strona w jakimś innym języku (co jest zawsze lepsze niż nic). Podjęcie decyzji, który dokument zostanie dostarczony, nie jest proste, nie będziemy go tu szczegółowo opisywać. Zainteresowanych odsyłamy do opisu na stronie http://httpd.apache.org/docs/content-negotiation.html.

Wielu użytkowników nie zdaje sobie sprawy z istnienia nogocjowania zawartości, dlatego na dole stron znajdują się linki odsyłające bezpośrednio do wersji w innych dostępnych językach. Jest to realizowane za pomącą skryptu napisanego w perlu, wywoływanego przez wml w chwili generowania strony.