关于ajax请求 Provisional headers are shown(只走Error)

Chrome请求出现"Provisional headers are shown":nginx

项目中遇到个好几回,分别介绍一下不一样的场景:web

1. 全部的客户端的浏览器访问时都一直出现Provisional headers are shown的状况:ajax

处理方式: 检查该请求触发的页面,查看是否有 表单提交 和 ajax请求同时触发的状况,chrome

例如:定义了一个按钮,type是submit,另外又给该按钮定义了一个ajax事件;(当前个人状况是出现按钮自带submit效果致使出现错误)docker

这种场景是咱们之前开发过程当中出现的一种状况shell

 

2. 部分客户端的浏览器出现浏览器

处理方式:调用chrome的  chrome://net-internals/#events ,而后从新触发一下请求,而后查看出现 Provisional headers are shown 的请求的日志;服务器

查看是否存在 delegate_blocked_by 的关键字;这种通常是因为浏览器端的插件或客户端的软件对请求进行了拦截;咱们出现的状况,是被 websense endpoint拦截;多线程

若是是这种状况,基本上能够忽略啦,客户端自身的问题啦;能够考虑将插件或软件卸载后,从新尝试,看是否还出现;若是还出现,请看是否属于如下的状况架构

 

3. 全部的客户端都随机偶尔出现过这种错误,若是是这种状况,每每是属于服务器端的问题

 处理方式: 基于部署架构来进行排查;例如:咱们的部署架构中 关键的几个流程是 nginx----> 网关应用----> F5负载均衡----> 应用服务器(docker)

能够进行层层排查,简单的方式是直接服务器shell命令 写一个for循环 curl请求,先调用最下层的应用服务器(若是怕压力不够,能够多线程去压);依次往上去压;在压测的过程当中,能够实时的去看,是否会出现请求卡住的状况;若是发现,很大的可能行就是这一层的问题:

 

目前咱们遇到的状况有两块,一个是F5层面,部分请求未成功负载均衡到应用服务器;还有一种状况是nginx层面出现的卡住的状况;

处理方案:F5层面的负载均衡策略 从 performance L4改为了standard; 

nginx层面卡住的状况处理方案:这种状况没有实际去参与过,了解的状况是修改了nginx的不少配置都没有效果,最后直接干掉重装就好啦,因此也没有找到关键点

 

记录一下,但愿有所帮助

相关文章
相关标签/搜索