故障码

故障码,第1张

故障排查从错误码406说起

大井

前一段时间,我突然从我的商业朋友那里收到一条消息,说一位来自Hujiang.com的老师已经在海外登录,并且没有Hujiang.com的账户。原来是一个很普通的问题,但是查题和看题的过程其实并不简单。每个人都是不可预测的,获得了很多植物,已经被那边的每个人分享了。

大家先从断层迹象判断,应该是战后后端封闭了,前端开发却封闭了。所以大家赶紧查了一下之前的整篇日记,从日记中用主次来判断客户的整体天文影响,继续显示故障,显示大量HTTP状态码406(24小时有2w个)。根据HTTP状态码的规范,8开故障码打手机客户端是否关闭。想想哪个错只表现在一个老师身上,开始判断406是考试成绩的来源。

随着疑点的删除和解释的深入,大家很快解决了这个语文老师的问题。还好确定和406有关。

然而,事实上,我们不能仅仅停留在这里。这样一来,一般来说,HTTP状态码应该是200,那么406是一个多大的数字呢?为什么不是每个人都能重现?他们是怎么唤起的?等等,大量的案例要引起客户的反应?为什么网上的反映那么安静,理性,安静?

下图是台湾省台中406断层日记。

流程库存

为了更好的保证功能,每个人的节点端都拿出了每次答辩的实际账号,所以童珍在阅读406的日记时,实际上无法知道详细的原始结果。为了更好的查哪个考试成绩,大家在主线上发布了一个补丁,详细记录了每个答辩的实际疑点,然后在台湾省台中看到了上面的答辩。

为了更好的对比,我们阅读了软件上的一般求情。如下图

仔细对比两次恳求,隔离出故障码406的定义,大家的目光都组合到Ass="superseo">ss="superseo">ccept的哪个头上。

日记

而一般的阅读软件是

所以大家都模仿了《邮差》里的fault的辩白,在公开场合大家都再现了406fault,所以可以确定测试结果是由Accept字段的名字引起的。

406不可接受形码暗示手机客户端有问题,被恳求资产的内容和特征无法满足恳求头中的前置条件,不能死呼应实物。翻译自HTTP和平谈判规范RFC文本文档

我们查了一下原材料,和后端开发的朋友讨论了406错误代码,了解到如果请求头的Accept不符合事先讨论的左券,就会返回406错误。出问题的是API服务,它返回应用程序/json布局的数据信息,但是请求中的Accept表明它实际上不支持那种布局,所以它会给出406错误。

大家小心翼翼的禁止了恳求阅读软件,所有的发明包括接受:*/*;。你看,这些引起406的恳求,实际上并没有被普通客户收回。那么,到底是谁收回了这些请求呢?

是CDN吗?

CDN的统称是内容交付网,即内容集合。它的总体目标是使用户能够方便地获得所需的内容,解决互联网收集的拥塞,提高客户会议网站的响应速度。收集CDN可以将服务器的内容文件缓存到传播全球的CDN部分。根据客户的会议IP,会远邻CDN,开发网站会呼应速度。(选自Google.com)

现在的CDN曾经是各种企业设置的,Hujiang.com也不例外。大家都仔细讨论过406启动IP的征集,所有的发明都来自北京联通的几个板块。那样的话,CDN有很大嫌疑,大概有两种可能:1。初始请求标头顶部的接受字段名是错误的;2.初始恳求头顶部的Accept字段名是正确的,但在通过CDN部分时被CDN篡改了。以前人们开始评判CDN的测试成绩,是因为被CDN篡改过。

接下来我们再回到北京联通节日经历的源头,资质证书是否被CDN篡改,最终客户IP也被获取。在网上搜索哪个IP的实际信息,有一个独特的网络爬虫,上面写着搜索模块。原来406其实并不是来自普通客户,只是一个搜索模块的网络爬虫。

在幕后

文章发表后的几天里,出现了大量发明故障的日记,406个故障全部拥有。感觉某某搜索模块反悔了,就用当时掉的IP搜索日记。发明这个搜索模块只是改变了开发策略。它的Accept字段名做了调整,搜索模块的唯一logo从UA的头上减去,变成了常规的搜索模块。

摘要

当站点遇到大量406故障时,不用太担心。好好查查日记。可能是搜索模块的爬虫造成的。

总结一下406错误代码的混乱,当一个搜索模块已经爬进沪江网页时,请求头设置Accept取后端开发服务承担的Accept字段名的差异,导致大量406错误。

下面就开始用最实用的方式来讲解一下表头接受的基础知识吧。

接受

Header可以用它来通知移动客户端在紧急情况下可以处理的内容实例,那些内容实例是用MIME实例(选自MDN)来隐含的。

内容示例

Text/html、application/XHTMLXML、application/XML都是MIME示例,也可以称为新闻媒体示例和内容示例。

在该实例中,application是一个示例,json是一个子示例。说明移动客户端只能加强应用/json类型的echo。如果服务器不能返回到该类型的回应,服务器应该返回到406错误。

使用通配符*表示随机示例。

比如:接受:/表示阅读软件在紧急情况下可以处理所有的例子。

接受是可以支持的,有几个分离的例子。

依靠内容协商机,服务器可以从多个选项中选择一个选项禁用,并使用内容类型的解决方案头通知手机客户端其选择。

说明手机客户端强响应的例子有三个:text/html,application/xhtmlxml,application/xml。

水果重量值(q)

q是0-1中间的标准值。Q的默认值是1,q=0表示你买不起。Q值越大,请求就越侧重于获得它的“;”前面的例子意味着什么。

说明手机客户端首先选择的是text/html布局的echo,其次是application/xhtmlxml,最开始是application/xml,*/*。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/768677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-02
下一篇 2022-05-02

发表评论

登录后才能评论

评论列表(0条)

保存