5 Aug 2006

Language of content negotiation

Categorie: Website ontwikkeling — lammert @ 15:39

Wie ooit de support website van Microsoft heeft bezocht op support.microsoft.com, zal waarschijnlijk gemerkt hebben dat de website Nederlandstalig is. Voor bezoekers uit andere landen wordt echter een tekst in een andere taal gepresenteerd. Hoe is dat mogelijk met één en dezelfde website naam?

Microsoft maakt hierbij gebruik van een optie die de meeste webservers en browsers bieden, namelijk content negotiation. Content negotiation betekent, dat de browser een aantal voorstellen doet aan de webserver over de gewenste informatie. Hiermee kan de gewenste taal worden opgegeven, maar bijvoorbeeld ook of liever .png dan .jpg beeldbestanden worden ontvangen. De webserver kijkt vervolgens in zijn lijst beschikbare bestanden en informatie en stuurt het best passende document terug naar de browser.

In de praktijk maken slechts zeer weinig websites van deze mogelijkheid gebruik. Het vereist namelijk dat op de webserver softwareopties worden aangezet waarmee in de aanwezige documenten wordt gezocht naar de best passende optie. Dit zoeken kost processortijd en diskactiviteit, en daarom hebben hostingbedrijven de optie—zeker bij de goedkopere hosting abonnementen—standaard uitgeschakeld. Op die manier kunnen ze meer pagina-aanvragen via dezelfde server per seconde verwerken en kunnen ze meer websites op één server proppen. Een economisch verhaal dus. Bovendien vereist het kennis bij de websitebouwer en de dicipline om bestanden waar mogelijk in meerdere versies (talen, bestandsformaten) aan te bieden.

Omdat ik echter gebruik maak van een eigen server voor mijn websites is het geen probleem om de content negitiation optie aan te schakelen in mijn Apache webserver. Voor één website gebruik ik het nu als proef om pagina’s in verschillende talen aan te bieden afhankelijk van de taalinstelling van de bezoeker, language negotiation dus. Wie naar die website gaat, zal waarschijnlijk een Nederlandstalige pagina te zien krijgen. Mocht dat niet zo zijn, dan staan de taalinstellingen in de browser verkeerd en is waarschijnlijk Engels als eerste taal ingesteld.

25 queries. 0.213 seconds.