浏览器和服务器在实践中是否使用 HTTP 内容协商?

Is HTTP content negotiation being used by browsers and servers in practice?

我目前正在学习 HTTP content negotiation。我已经了解客户端和服务器能够协商所请求内容的表示的基本方式。

不过,我无法找出哪些内容协商实际上有利于真实世界的浏览器是否正在积极使用其中的任何一个?我知道他们正在发送一些 headers,例如 Accept,但它们的内容和含义似乎被模糊地定义为。

我还想知道 real-world Web 应用程序是否可以使用 HTTP 内容协商。 现实的 Web 应用程序会 return 基于这些 headers 的不同数据吗? 服务器如何根据 q-factor 做出有意义的决定?

我的目标是了解真正的网络应用程序在这方面是如何工作的,以便我可以更好地决定我想学习和使用 HTTP 内容协商的哪些部分。

也许答案只是没有在实践中使用,这对我来说是一个有效的答案。用例的具体示例也会有所帮助。

是的。它肯定用于 multi-language 个页面(一个为法语和英语用户显示不同页面的网站)

我还可以想象版本控制系统的某些 Web 界面可以使用 Accept: header 来显示(当显示某些 C 源文件时)原始 C 文件或某些 HTML 它的格式化版本。

它肯定用得很多,例如协商格式(使用 "Accept",例如 image/webp),压缩编码(使用 "Accept-Encoding",例如 brotli)或不同的语言(使用 "Accept-Language")。