总结下本次406错误码事件,某搜索引擎在爬取沪江页面的时候,请求头设置 Accept 与后端服务所接受的 Accept 字段不同,从而导致大量的406错误。 最后详细讲解下Header中 Accept 的相关知识 Accept header中用它来告知客户端可以处理的内容类型,这种内容类型用MIME类型来表示(引用自MDN) 内容类型 text/html,application/xhtml+xml,application/xml 都是 MIME 类型,也可以称为媒体类型和内容类型。 示例中,application的是类型,json是子类型。它说明,客户端只能够接收application/json这种类型的响应。如果服务端不能返回这种类型的响应,服务端应当返回406错误。 通配符 * 代表任意类型 例如:Accept: / 代表浏览器可以处理所有类型 Accept可以支持用,分隔的多个类型 借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用,并使用 Content-Type 应答头通知客户端它的选择。 它说明,客户端能够接收的响应类型只有三种:text/html,application/xhtml+xml,application/xml。 因子权重(q) q是一个0-1之间的数值, q的默认值是1, q=0代表不可接受,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容 它说明,客户端优先选择text/html格式的响应,其次是application/xhtml+xml,最后才是application/xml,*/*。 (责任编辑:admin) |