The Wayback Machine - https://web.archive.org/web/20090621093041/http://www.webreference.com:80/html/tutorial29/4.html


spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / html / tutorials / 29 / 4

index1234567

HTTP for HTML Authors, Part II

Developer News
Google Going Native With Chrome
Mozilla Fixes Firefox Flaws as 3.5 Release Nears
Microsoft and Novell Still Bosom Buddies

Content Negotiation

Up until now, you've been used to the fact that a certain path in your server always corresponds to the same file on your server's hard disk. As I've said before, this is often not the case; the first example of such a situation which we'll examine is server-driven content negotiation.

The term content negotiation means that there exists a system which can be used to select one of several alternative documents for a given request. In this case, server-driven content negotiation is such a system.

The purpose of content negotiation is to automatically select the correct document for a user based on his abilities, preferences and set-up. The most commonly used example of content negotiation is in selecting documents in different languages. As we saw before, a Web server can specify the language of a document via the Content-Language HTTP header. This is useful if the reader doesn't speak the language, but in the end is very similar in functionality to that dumb look on your face when confronted with a language you've never seen before.

Another useful HTTP header is the Accept-Language header. In contrast to Content-Language, this header is sent along by the browser along with a request (instead of being sent by the server along with a response) and indicates which languages the browser would rather receive. Most modern browsers (including the Big Two) allow users to specify their preferred languages, usually in order of preference. These are then sent to Web servers via the Accept-Language header. A typical Accept-Language header might look like this:

Accept-Language: da, en-gb;q=0.8, en;q=0.7

This header specifies that Danish is the preferred language, followed by British English, followed by other English variants. The q=0.8 bits are what are called quality ratings and merely specify the relative preference the user is expressing for each language; the details of how they work are beyond the scope of this tutorial.

A Web server, when confronted with such a header, is expected to look at the various alternatives it has on offer and select the one that can best satisfy the user's lack of linguistic skills. The precise mechanism through which this is accomplished varies from server to server, and once again is a matter of implementation. However, if you're going to offer a Web site in multiple languages, this is an excellent way to make sure the right people get the right version of your documents.

Content negotiation is not only done on the basis of language; the HTTP request headers Accept and Accept-Charset work in similar ways as Accept-Language, and offer means of selecting a version of the correct media type and character set (or encoding, in the case of HTML).

index1234567

Next Page...

http://www.internet.com/

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info
Copyright 2009 WebMediaBrands Inc. All Rights Reserved.

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Make Prettier URLs with Apache's Mod Rewrite · Testing your DTD XML Schema Validation · Consuming a Web Service using ASP.NET Ajax
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Ready for Off-the-Shelf VoIP? · Secrets to Telework Success for Small Businesses · Intel to Host Live Nehalem Q&A;

URL: http://www.webreference.com/html/tutorial29/4.html

Produced by Stephanos Piperoglou
Created: January 24, 2001
Revised: February 27, 2001

Morty Proxy This is a proxified and sanitized view of the page, visit original site.