HTTP 请求中 accept 字段中的各个字段分别代表什么意思?

HTTP 请求中 accept 字段中的各个字段分别代表什么意思?

HTTP 请求中 accept 字段中的不同字段是什么意思?我可以理解基本知识,即客户端通过 accept 告诉服务器它正在等待接收什么类型的信息,例如:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

这样客户端就会告诉服务器它可以理解以下三种格式:

  • 文本/html
  • 应用程序/xhtml+xml
  • 应用程序/xml

但有人能告诉我这个 q 值是什么意思吗?/

此外,如果我的理解有任何缺陷,请告诉我。

答案1

他们是一个相对质量参数

它们帮助客户指定他们喜欢的 MIME 类型。这个是说:我更喜欢,text/html,application/xhtml+xml,application/xml; 但如果那就是你所拥有的一切,我会接受*/*(任何东西)。

答案2

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

当我第一次尝试理解这一点时,有一件事让我非常困惑,那就是在这种情况下,逗号是比分号更高级别的分隔符,这与通常的做法相反。

也就是说,应该这样拆分:

   Content Type              Preference Level
====================================================
1. text/html                 unspecified (implies 1)
2. application/xhtml+xml     unspecified (implies 1)
3. application/xml           0.9
4. */* (anything else)       0.8

我读着这个字符串,脑子里自然而然地先用分号把它分开,然后用逗号把它分开,然后读着解释,却完全不明白。因此,我认为明确解释一下会很有帮助。

相关内容