Français
Deutsch
Español

 

International HTTP

HTTP’s main job is to manage client-server communications, allowing the former to make requests and the latter to reply by returning the requested documents along with sufficient meta-information so that the client can interpret them correctly. In addition, it is desirable to have the requests contain meta-information as well so that the server, by interpreting it, can fulfill the request more effectively.

HTTP/1.1, the current version of the protocol, is described in RFC 2616, a Proposed Standard. Version 1.0 was described in RFC 1945, which is not a standard, but merely an information document.

The charset parameter

HTTP uses MIME type headers for both requests and replies for sending meta-information between client and server. Undoubtedly, the most important line in the reply header is the one called Content-Type which tells the client what kind of data the server is sending: HTML text, plain text, GIF image, AU sound, etc.

But in all text cases, correct interpretation requires knowledge of the character coding used in addition to the basic type information. MIME provides a parameter called charset (short for character set) for this purpose; this parameter is attached to the type in the Content-Type line.

Unfortunately, this parameter is almost never used in current Web practice. This is for historical reasons, since the Web originally used only ISO-8859-1, and this character set became its implicit code; it is even referred to as such in RFC 1945 and RFC 2616. European and American HTTP server developers



Cont.

did not bother to implement it, finding ISO-8859-1 adequate for their purposes.

Today, ISO-8859-1 is no longer the implicit code, in spite of what the RFCs may say; in fact, there is none, since many are in use without any tagging.

Let us hope that the future HTTP standards will recognize this de facto condition and make the charset parameter mandatory for everyone.

Language negotiation

Language negotiation is one of the facets of content type negotiation. The idea is that a document can exist in several language variants, formats or codes; using special header lines, the client indicates its capabilities and/or preferences, which the server then uses to choose the most appropriate version from among all the variants.

Although it was abandoned in HTTP 1.0 (RFC 1945), the idea has resurfaced in the HTTP 1.1 standard (RFC 2616). Several browsers and servers are already capable of handling content negotiation in general, and language negotiation in particular. One of the most popular servers - the Apache server - can be configured to allow document language selection in accordance with preferences indicated by the browser, and also to tag character coding correctly. Additional details can be found in an article on content negotiation on the Apache site.

Language negotiation is a great feature when navigating through multilingual sites. The client receives the appropriate version directly, without wasting time wading through poorly understood or incomprehensible pages looking for a hyperlink to the right language. The Babel site uses it, yet offers explicit hyperlinks on most pages for those whose browser does not yet support linguistic preferences, or those who neglect to set them.







Back to home page

The Tango Multilingual Browser will properly display all of Babel's languages. © 1996, Alis Technologies inc.

Reactions? Comments? Suggestions?   Write us.