java请求406是什么错误 网站故障排查从错误码406说起
很多朋友对于java请求406是什么错误和网站故障排查从错误码406说起不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
http error 406是什么错误
HTTP 406错误指无法接受(Not acceptable)错误。
如果 Web服务器检测发现它想反馈的数据不能为客户端所接受,它则反馈一个含有 406错误代码的报头。客户端可以向 Web服务器表明它将接受的服务器反馈数据的特征。这是通过使用以下类型'接受头'来完成的:
接受:为客户端所接受的 MIME(多功能互联网邮件扩充服务)类型。例如,浏览器可能只接受它知道如何处理的反馈数据类型(HTML文件, GIF文件等)。
接受-字符集:为客户端所接受的字符集。接受-编码:为客户端所接受的数据编码,如客户端可理解的文件格式。接受-语言:为客户端所接受的自然语言(英语,德语等)。接受-范围:客户端是否接受来自网络资源的字节范围,即该资源的一部分。
扩展资料:
406错误相关解决方法:
该错误在浏览器上很少发生,因为大多数浏览器会接受您的 Web服务器反馈的任何数据。如果客户端不是一个浏览器,那么就只能通过检查客户端系统所产生的接受头和 Web服务器反馈的数据流来研究该问题。如果无法接触这些系统的源程序,只能将该问题提交给开发这些系统的公司的技术。
相关错误:
405:用来访问本页面的 HTTP谓词不被允许(方法不被允许)406:客户端浏览器不接受所请求页面的 MIME类型。407:要求进行代理身份验证。412:前提条件失败。413:请求实体太大。414:请求 URI太长。
参考资料来源:百度百科-http错误
java 程序运行常报的错误
HTTP
1xx-信息提示
这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx响应。? 100-继续。
? 101-切换协议。
2xx-成功
这类状态代码表明服务器成功地接受了客户端请求。
? 200-确定。客户端请求已成功。
? 201-已创建。
? 202-已接受。
? 203-非权威性信息。
? 204-无内容。
? 205-重置内容。
? 206-部分内容。
3xx-重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。? 302-对象已移动。
? 304-未修改。
? 307-临时重定向。
4xx-客户端错误
发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。? 400-错误的请求。
? 401-访问被拒绝。IIS定义了许多不同的 401错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS日志中显示:? 401.1-登录失败。
? 401.2-服务器配置导致登录失败。
? 401.3-由于 ACL对资源的限制而未获得授权。
? 401.4-筛选器授权失败。
? 401.5- ISAPI/CGI应用程序授权失败。
? 401.7–访问被 Web服务器上的 URL授权策略拒绝。这个错误代码为 IIS 6.0所专用。
? 403-禁止访问:IIS定义了许多不同的 403错误,它们指明更为具体的错误原因:? 403.1-执行访问被禁止。
? 403.2-读访问被禁止。
? 403.3-写访问被禁止。
? 403.4-要求 SSL。
? 403.5-要求 SSL 128。
? 403.6- IP地址被拒绝。
? 403.7-要求客户端证书。
? 403.8-站点访问被拒绝。
? 403.9-用户数过多。
? 403.10-配置无效。
? 403.11-密码更改。
? 403.12-拒绝访问映射表。
? 403.13-客户端证书被吊销。
? 403.14-拒绝目录列表。
? 403.15-超出客户端访问许可。
? 403.16-客户端证书不受信任或无效。
? 403.17-客户端证书已过期或尚未生效。
? 403.18-在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0所专用。
? 403.19-不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0所专用。
? 403.20- Passport登录失败。这个错误代码为 IIS 6.0所专用。
? 404-未找到。? 404.0-(无)–没有找到文件或目录。
? 404.1-无法在所请求的端口上访问 Web站点。
? 404.2- Web服务扩展锁定策略阻止本请求。
? 404.3- MIME映射策略阻止本请求。
? 405-用来访问本页面的 HTTP谓词不被允许(方法不被允许)
? 406-客户端浏览器不接受所请求页面的 MIME类型。
? 407-要求进行代理身份验证。
? 412-前提条件失败。
? 413–请求实体太大。
? 414-请求 URI太长。
? 415–不支持的媒体类型。
? 416–所请求的范围无法满足。
? 417–执行失败。
? 423–锁定的错误。
5xx-服务器错误
服务器由于遇到错误而不能完成该请求。? 500-内部服务器错误。? 500.12-应用程序正忙于在 Web服务器上重新启动。
? 500.13- Web服务器太忙。
? 500.15-不允许直接请求 Global.asa。
? 500.16– UNC授权凭据不正确。这个错误代码为 IIS 6.0所专用。
? 500.18– URL授权存储不能打开。这个错误代码为 IIS 6.0所专用。
? 500.100-内部 ASP错误。
? 501-页眉值指定了未实现的配置。
? 502- Web服务器用作网关或代理服务器时收到了无效响应。? 502.1- CGI应用程序超时。
? 502.2- CGI应用程序出错。application.
? 503-服务不可用。这个错误代码为 IIS 6.0所专用。
? 504-网关超时。
? 505- HTTP版本不受支持。
网站故障排查从错误码406说起
网站故障排查怎么做?我们首先判断,从故障现象来看,应该和后端无关,而是与前端有关,所以我们迅速查看了前端的日志,从日志来看,主要是用于判断客户端的地理位置接口持续出现错误,出现大量的HTTPStatusCode406(24小时之内出现了1w多条)。
按照HTTPStatusCode的规范,4开头的错误码和客户端有关,考虑到这个故障只出现在一位老师那里,初步判断406就是问题的根源。
随着掌握信息的增加,分析的加深,我们迅速解决了那位外教的故障,不幸的是,确认它和406没有关系。
但是,我们并不能就此打住。毕竟正常情况下响应的HTTPStatusCode应该是200,那么大量的406到底是什么呢?为什么我们都无法复现?它们是如何引发的?如此大量的爆发应当引起用户的反馈了?为什么线上的反馈这么平静呢?
排查过程
为了保障性能,我们的Node端并没有详细记录每个请求,所以单纯看406的日志并不能知道具体的原因。为了排查这个问题,我们紧急发布了在线补丁,具体记录每个请求的详细信息,然后在日志平台中看到了下面的请求。
于是,我们在Postman中模拟了错误的请求,果然,我们复现了406错误,所以可以确认问题是Accept字段导致。
406NotAcceptable状态码表示客户端错误,表示请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。译自HTTP协议规范RFC文档
我们上网查阅资料并也跟后端同事讨论了406的错误码,得知,如果请求头的Accept不符合事先约定的契约,就会返回406错误。报错的是API服务,返回的是application/json格式的数据,然而请求中的Accept说明它并不支持这种格式,所以会报出406错误。
我们仔细检查了常见浏览器发送的请求,发现全部都包含Accept:*/*;。看来,这些引发406的请求并不是普通用户发出来的。那么,究竟是谁发出了这些请求呢?
难道是CDN?
CDN的全称是ContentDeliveryNetwork,即内容分发网络。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。CDN网络可以将服务器的内容缓存到分布全球的CDN节点,根据用户的访问IP,就近连接CDN,提高网站响应速度。(引用自google.com)
以上就是小编对于网站故障排查的解析。
网站好了,文章到这里就结束啦,如果本次分享的java请求406是什么错误和网站故障排查从错误码406说起问题对您有所帮助,还望关注下本站哦!