From: Joshua Slive Date: Wed, 29 May 2002 16:26:43 +0000 (+0000) Subject: A couple small corrections to the content negotiation docs: X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f191e62972238690b55689cd9f484d79cefa7ca3;p=apache A couple small corrections to the content negotiation docs: - The "parent language" matchine is available always, not just with ForceLanguagePriority - ForceLanguagePriority defaults to Prefer, not None. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95354 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/content-negotiation.html b/docs/manual/content-negotiation.html index 8403cb2733..6b4c6a6f1a 100644 --- a/docs/manual/content-negotiation.html +++ b/docs/manual/content-negotiation.html @@ -208,7 +208,7 @@ depends on the setting of the MultiViewsMatch directive. This directive determines whether handlers, filters, - and other file types can participate in MultiViews + and other extension types can participate in MultiViews negotiation.

The Negotiation Methods

@@ -426,6 +426,10 @@

Language Negotiation Exceptions

+

New in Apache 2.0, some exceptions have been added to the + negotiation algorithm to allow graceful fallback when language + negotiation fails to find a match.

+

When a client requests a page on your server, but the server cannot find a single page that matches the Accept-language sent by the browser, the server will return either a "No Acceptable @@ -439,26 +443,28 @@ href="mod_negotiation.html#languagepriority">LanguagePriority directive.

-

The ForceLanguagePriority directive also causes - Apache to attempt to match language-subsets against their parent - language when no other match can be obtained. For example, if a - client requests documents with the language en-GB for - British English, the server is not normally allowed by the - HTTP/1.1 standard to return a document that is marked as simply +

The server will also attempt to match language-subsets when no + other match can be found. For example, if a client requests + documents with the language en-GB for British + English, the server is not normally allowed by the HTTP/1.1 + standard to match that against a document that is marked as simply en. (Note that it is almost surely a configuration error to include en-GB and not en in the Accept-Language header, since it is very unlikely that a reader understands British English, but doesn't understand English in general. Unfortunately, many current clients have default - configurations that resemble this.) With the - ForceLanguagePriority header, the server can be - configured to ignore the subset specification and match - en-GB against en documents. But note - that if the client requests "en-GB; qs=0.9, fr; qs=0.8", and the - server has documents designated "en" and "fr", then the "fr" - document will be returned regardless of the - ForceLanguagePriority directive. This is necessary - to maintain compliance with the HTTP/1.1 specification.

+ configurations that resemble this.) However, if no other language + match is possible and the server is about to return a "No + Acceptable Variants" error or fallback to the + LanguagePriority, the server will ignore the subset + specification and match en-GB against en + documents. Implicitly, Apache will add the parent language to + the client's acceptable language list with a very low quality + value. But note that if the client requests "en-GB; qs=0.9, fr; + qs=0.8", and the server has documents designated "en" and "fr", + then the "fr" document will be returned. This is necessary to + maintain compliance with the HTTP/1.1 specification and to work + effectively with properly configured clients.

Extensions to Transparent Content Negotiation

diff --git a/docs/manual/content-negotiation.html.en b/docs/manual/content-negotiation.html.en index 8403cb2733..6b4c6a6f1a 100644 --- a/docs/manual/content-negotiation.html.en +++ b/docs/manual/content-negotiation.html.en @@ -208,7 +208,7 @@ depends on the setting of the MultiViewsMatch directive. This directive determines whether handlers, filters, - and other file types can participate in MultiViews + and other extension types can participate in MultiViews negotiation.

The Negotiation Methods

@@ -426,6 +426,10 @@

Language Negotiation Exceptions

+

New in Apache 2.0, some exceptions have been added to the + negotiation algorithm to allow graceful fallback when language + negotiation fails to find a match.

+

When a client requests a page on your server, but the server cannot find a single page that matches the Accept-language sent by the browser, the server will return either a "No Acceptable @@ -439,26 +443,28 @@ href="mod_negotiation.html#languagepriority">LanguagePriority directive.

-

The ForceLanguagePriority directive also causes - Apache to attempt to match language-subsets against their parent - language when no other match can be obtained. For example, if a - client requests documents with the language en-GB for - British English, the server is not normally allowed by the - HTTP/1.1 standard to return a document that is marked as simply +

The server will also attempt to match language-subsets when no + other match can be found. For example, if a client requests + documents with the language en-GB for British + English, the server is not normally allowed by the HTTP/1.1 + standard to match that against a document that is marked as simply en. (Note that it is almost surely a configuration error to include en-GB and not en in the Accept-Language header, since it is very unlikely that a reader understands British English, but doesn't understand English in general. Unfortunately, many current clients have default - configurations that resemble this.) With the - ForceLanguagePriority header, the server can be - configured to ignore the subset specification and match - en-GB against en documents. But note - that if the client requests "en-GB; qs=0.9, fr; qs=0.8", and the - server has documents designated "en" and "fr", then the "fr" - document will be returned regardless of the - ForceLanguagePriority directive. This is necessary - to maintain compliance with the HTTP/1.1 specification.

+ configurations that resemble this.) However, if no other language + match is possible and the server is about to return a "No + Acceptable Variants" error or fallback to the + LanguagePriority, the server will ignore the subset + specification and match en-GB against en + documents. Implicitly, Apache will add the parent language to + the client's acceptable language list with a very low quality + value. But note that if the client requests "en-GB; qs=0.9, fr; + qs=0.8", and the server has documents designated "en" and "fr", + then the "fr" document will be returned. This is necessary to + maintain compliance with the HTTP/1.1 specification and to work + effectively with properly configured clients.

Extensions to Transparent Content Negotiation

diff --git a/docs/manual/mod/mod_negotiation.html.en b/docs/manual/mod/mod_negotiation.html.en index 2235d574ca..f7de0488e5 100644 --- a/docs/manual/mod/mod_negotiation.html.en +++ b/docs/manual/mod/mod_negotiation.html.en @@ -142,7 +142,7 @@ cached by proxy serversForceLanguagePriority Directive
Description: Action to take if a single acceptable document is not -found
Syntax:ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]
Default:ForceLanguagePriority None
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_negotiation
Compatibility:Available in version 2.0.30 and later
+foundSyntax:ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]Default:ForceLanguagePriority PreferContext:server config, virtual host, directory, .htaccessOverride:FileInfoStatus:BaseModule:mod_negotiationCompatibility:Available in version 2.0.30 and later

The ForceLanguagePriority directive uses the given LanguagePriority to satisfy negotation where the server could otherwise not return a single diff --git a/docs/manual/mod/mod_negotiation.xml b/docs/manual/mod/mod_negotiation.xml index a30ea4f0fa..a16372be99 100644 --- a/docs/manual/mod/mod_negotiation.xml +++ b/docs/manual/mod/mod_negotiation.xml @@ -180,7 +180,7 @@ cached by proxy servers Action to take if a single acceptable document is not found ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] -ForceLanguagePriority None +ForceLanguagePriority Prefer server config virtual host directory