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