內容協商

伺服器如何知道要提供哪個文件

您會發現內部鏈接沒有以 .html 結尾。這是因為伺服器使用內容協商來決定要傳送哪個版本的文件。當有多個選擇時,伺服器會列出所有可能提供的文件,例如如果請求的是 'about',那麼完整的列表可能包括 about.en.html 和 about.de.html。 Debian 伺服器的默認設置是提供英文文件,但這是可以配置的。

如果客戶端設置了適當的變量,例如要提供德文,那麼在上面的例子中就會提供 about.de.html。這種設置的好處是如果所需的語言不可用,會改為提供其他語言的版本(這希望比什麼都沒有要好)。決定提供哪個文件的規則有點複雜,所以我們不在這裡描述,如果您有興趣,應該從 https://httpd.apache.org/docs/current/content-negotiation.html 獲得權威性的答案。

因為許多使用者甚至不知道內容協商的存在,每個頁面的底部都有直接指向該頁面所有其他可用語言版本的鏈接。這是透過 wml 在生成頁面時調用的 perl 命令稿來計算的。

還有一個選項可以使用 cookie 來覆蓋瀏覽器的語言偏好,將單一語言的優先權設置為高於瀏覽器偏好。