我开发了一个Web应用程序,它以HTTP Accept Headers中客户端指定的格式响应数据。使用Firefox时一切正常,但当我想在Chrome和IE上查看我的CSS / HTML时,他们都希望下载索引页面,好像它是一种未知的内容类型。
经过一些研究后,我发现this article,它表明IE在其HTTP Accept标头中发出了大量的内容,其中包括一开始的image/*
内容类型列表。
这导致我的网络应用尝试将索引页面作为image/jpeg
发送。
那么我怎么知道何时忽略以及何时使用Accept Headers?
答案 0 :(得分:1)
如果在接受标头中有相同权重的类型,最好的做法是使用您自己的服务器端权重。因此,如果你有text / html和image / *都具有相同的q值(或没有),你可以默认提供text / html首选项。
答案 1 :(得分:0)
我只会保留一个程序黑名单,这些程序会发送明显破坏的Accept标头,如IE和Safari(根据文章)。如果User-Agent标头与黑名单匹配,则忽略Accept标头,否则忽略。
IE接受标头的问题不是它在开始时放置image/*
,而是表明它不喜欢HTML或XHTML而不是图像(通过q
参数)。 AFAIK,Accept标头中元素的顺序并不重要。