商丘做网站,商丘网站优化,商丘网络推广,商丘网络公司
当前位置:首页 > 新闻资讯 > 建站经验 >

故障排查 从错误码406说起

发表日期:2018-01-19 21:45聚圣源浏览次数: 本文关键词:故障,排查,从,错,误码,406,说起,背景,

 

  背景

  前一段时间,我突然接到运营的同事通报,沪江的一位老师在国外登录不上了沪江帐号。这本来是很普通的故障,但是在排查问题过程并不简单,我们意外获得了不少收获,在这里与大家分享。

  我们首先判断,从故障现象来看,应该和后端无关,而是与前端有关,所以我们迅速查看了前端的日志,从日志来看,主要是用于判断客户端的地理位置接口持续出现错误,出现大量的HTTP Status Code 406(24小时之内出现了1w多条)。按照HTTP Status Code的规范,4开头的错误码和客户端有关,考虑到这个故障只出现在一位老师那里,初步判断406就是问题的根源。

  随着掌握信息的增加,分析的加深,我们迅速解决了那位外教的故障,不幸的是,确认它和406没有关系。

  但是,我们并不能就此打住。毕竟正常情况下响应的HTTP Status Code应该是200,那么大量的406到底是什么呢?为什么我们都无法复现?它们是如何引发的?如此大量的爆发应当引起用户的反馈了?为什么线上的反馈这么平静呢?

  下图为日志平台中406错误的情况

  

故障排查 从错误码406说起

 

  排查过程

  为了保障性能,我们的 Node 端并没有详细记录每个请求,所以单纯看406的日志并不能知道具体的原因。为了排查这个问题,我们紧急发布了在线补丁,具体记录每个请求的详细信息,然后在日志平台中看到了下面的请求

  

故障排查 从错误码406说起

 

  为了便于对比,我们在浏览器上截取了正常的请求。如下图

  

故障排查 从错误码406说起

 

  仔细对比这两个请求,结合错误码406的定义,我们的目光集中到了 Accept 这个header

  日志中

  而正常浏览器的行为

  于是,我们在 Postman 中模拟了错误的请求,果然,我们复现了406错误,所以可以确认问题是 Accept 字段导致。

  406 Not Acceptable 状态码表示客户端错误,表示请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。 译自HTTP协议规范RFC文档

  我们上网查阅资料并也跟后端同事讨论了406的错误码,得知,如果请求头的 Accept 不符合事先约定的契约,就会返回406错误。报错的是 API 服务,返回的是 application/json 格式的数据, 然而请求中的 Accept 说明它并不支持这种格式,所以会报出406错误。

  我们仔细检查了常见浏览器发送的请求,发现全部都包含 Accept: */* ;。看来,这些引发406的请求并不是普通用户发出来的。那么,究竟是谁发出了这些请求呢?

  难道是CDN?宁夏

  CDN 的全称是Content Delivery Network,即内容分发网络。 其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。 CDN 网络可以将服务器的内容缓存到分布全球的CDN节点,根据用户的访问 IP,就近连接 CDN,提高网站响应速度。(引用自google.com)

  

故障排查 从错误码406说起

 

  如今CDN已经是各种公司的普遍配置,沪江也不例外。我们仔细研究了引发406的请求来源IP,发现都是来自北京联通的少数节点。这样看来,CDN的嫌疑很大,大概有两种可能:1、原始请求头部的Accept 字段就是错的;2、原始请求头部的 Accept 字段是对的,但是在经过 CDN 节点的时候被 CDN 篡改了。由于以前遇到过 CDN 篡改头部的问题,我们初步判断是 CDN 的问题。

  接下来,我们将北京联通的节点暂时回源,验证是不是 CDN 篡改了头部,同时也拿到了最终的用户 IP。 上网搜索这个IP详细的信息,上面赫然写着某搜索引擎的爬虫。原来,406并不是来自于普通用户,而是搜索引擎的爬虫。

  花絮

  在写文章的这几天,发现错误日志下降了很多,406错误都没有了。以为某某搜索引擎幡然悔悟,于是用当时出错的 IP 去日志平台搜索,发现该搜索引擎只是换了个策略。它的 Accept 字段做了修改,UA 头中加上了该搜索引擎特有的标识,摇身一变又成了正规的搜索引擎。

  

故障排查 从错误码406说起

 

  小结

  对开发人员来说,当站点遇到大量的406错误的时候,不用太担心,好好查下日志,它很有可能是搜索引擎的爬虫导致的。

  总结下本次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,*/*。

如没特殊注明,文章均来自网络! 转载请注明来自:http://www.jushengyuan.com.cn/news/jzjy/9876.html

网站设计案例推荐

热门文章

站长工具综合查询里面SSL证书不...

SSL证书不安全是怎么回事?但是点进去这个提示后,显示的是别人的tdk是不是被劫持或者被黑了?...

日期:2018-03-27 浏览次数:1895

简洁而实用的版权信息可增色网...

打开网站,人们自然会从上往下浏览,首先映入眼帘的一定是BANNER主视觉,然后是网站主体内容部分。相比较而言,注意到网站底部版权信息的浏览者确实不多,但这并说明网站版权信...

日期:2018-09-20 浏览次数:1883

网站设计需要注意的3点问题...

对于网站设计来讲会受到很多因素的影响,而且不同类型的网站,在设计时需要体现的元素也不一样,比如说对于一个企业网站更想体现出品牌以及产品的特点,主要是对产品、企业信...

日期:2018-02-12 浏览次数:1808

企业网站为什么要改版 改版选择...

网站改版,是每个建站企业必须面临的工作。相信也有不少站长问,已经做好的企业网站,为何还要大费周章重新进行改版设计呢?下面小编就来给大家说说,企业究竟为什么要改变,并...

日期:2018-03-26 浏览次数:1338

永城网站制作:模板建站不可不...

随着互联网建站尤其是自助建站热潮不断高涨,建站行业涌现出越来越多的自助建站平台,这些平台普遍都提供网站模板可选。...

日期:2018-04-30 浏览次数:940

相关文章

【宁夏SEO】电子商务网站建设如...

小程序创业扶持计划 实现月入10万创业梦 全国各地的人们都在经营电商,有的在大型电商平台上经营,有的自主搭建电商平台。我是一位使用数商云电商系统的商家,选择搭建独立的电...

日期:2018-09-06 浏览次数:74

【新疆网络推广】从建站开始做...

如果说要做好SEO,那一定要从建站系统开始,如果说建站系统里SEO效果做的最好的,那一定是云指建站。 影响一个网站的SEO优化的因素主要是:服务器稳定性、网站的框架、网站代码、...

日期:2018-08-27 浏览次数:71

【新疆网络推广】从建站开始做...

如果说要做好SEO,那一定要从建站系统开始,如果说建站系统里SEO效果做的最好的,那一定是云指建站。 影响一个网站的SEO优化的因素主要是:服务器稳定性、网站的框架、网站代码、...

日期:2018-08-26 浏览次数:68

商丘网:从建站开始做SEO,让您的...

如果说要做好SEO,那一定要从建站系统开始,如果说建站系统里SEO效果做的最好的,那一定是云指建站。 影响一个网站的SEO优化的因素主要是:服务器稳定性、网站的框架、网站代码、...

日期:2018-08-18 浏览次数:71

小说网站从建立到盈利全解析(...

从2007年做站,刚好十年了。时间过得真快。因为自己是兼职做站,所以一直断断续续,也没有什么大的成绩。做过地方论坛,电影站,股票站,文章站,小说站等,能尝试的都尝试了。...

日期:2018-01-19 浏览次数:81

随机推荐

初期草根站长适合做什么样的网...

企业建站:打造炫酷官网的几个...

利用robots文件做seo优化,让蜘蛛...

网站建设搜索框设计技巧和功能...

对于企业网站建设来说 哪些内容...

网站建设如何突破同质化竞争的...