内容协商

服务器如何知道要提供哪个文件

您会发现内部链接没有以 .html 结尾。这是因为服务器使用内容协商来决定要传送哪个版本的文档。当有多个选择时,服务器会列出所有可能提供的文件,例如如果请求的是 'about',那么完整的列表可能包括 about.en.html 和 about.de.html。 Debian 服务器的默认设置是提供英文文档,但这是可以配置的。

如果客户端设置了适当的变量,例如要提供德文,那么在上面的例子中就会提供 about.de.html。这种设置的好处是如果所需的语言不可用,会改为提供其他语言的版本(这希望比什么都没有要好)。决定提供哪个文档的规则有点复杂,所以我们不在这里描述,如果您有兴趣,应该从 https://httpd.apache.org/docs/current/content-negotiation.html 获得权威性的答案。

因为许多用户甚至不知道内容协商的存在,每个页面的底部都有直接指向该页面所有其他可用语言版本的链接。这是通过 wml 在生成页面时调用的 perl 脚本来计算的。

还有一个选项可以使用 cookie 来覆盖浏览器的语言偏好,将单一语言的优先权设置为高于浏览器偏好。