关于post请求“CAUTION: Provisional headers are shown”【转】

在POST请求中偶尔会出现“CAUTION: Provisional headers are shown”

这个警告的意思是说:请求的资源可能会被(扩展/或其它什么机制)屏蔽掉。

之所以会出现这个警告。是由于去获取该资源的请求事实上并(还)没有真的发生,所以 Header 里显示的是伪信息,直到server真的有响应返回,这里的 Header 信息才会被更新为真实的。

只是这一切也可能不会发生。由于该请求可能会被屏蔽。比方说 AdBlock 什么的,当然了不全是浏览器扩展。详细情况详细分析了。

对了。别忘了用 chrome://net-internals 来帮助你查找被屏蔽的请求以及可能的原因。


Net Internals 是一套工具集合,用于帮助诊断网络请求与訪问方面的问题,它通过监听和搜集 DNS。Sockets。SPDY,Caches 等事件与数据来向开发人员反馈各种网络请求的过程、状态以及可能产生影响的因素。

然而。原因千千万,Net Internals 不可能那么聪明的就直接帮你分析出答案来,大多数情况下详细原因还是须要开发人员通过抽丝剥茧自己来找原因的。

试举例:我打开某 Web App,却发现一直空白。打开 Developer Tools 的 Networking,发现例如以下图所看到的

p1

好吧,貌似是这个资源无法訪问了。可是详细原因是否能知道呢?OK,打开 chrome://net-internals。又一次刷一遍这个 Web App,然后你会看到 NI 的 events 蹭蹭蹭地变多了。进入 events 界面。试着搜索一下keyword(也就是在第一张图里看到的请求地址中的keyword),看:

a1

好吧……你要问我“IO Pending”代表出了什么问题?坦白地说在这个样例里我也不知道怎样解释。可是我知道它大概和 Amazon S3 有点关系。也许非常多时候你还是得进一步借助 Google、StackOverflow、包含 SegmentFault

OK,实际上是由于被墙所以 Response 收不到,我翻了就好了……这个样例可能不具有代表性,再试举一例:

还是一样。先看到错误:

p2

So why is that?

a2

好的,这样就清楚多了:连接超时。

至于为什么连接超时,这就不是 NI 的职责范围了,你须要进一步去探究造成连接超时的原因(好吧,事实上还是由于 GFW)。

一时半会儿找不到更好的样例了。我知道还多人研究 NI 都是由于做 Chrome Extension 时产生的问题,不管怎样试试用 NI 去过滤一遍你的应用全部的(出问题的)请求,那些反馈信息的确不是非常好读,你可能须要不断借助 Google 大神,花费非常多力气。

只是相信我,尝试几次就会慢慢抓住窍门,也会慢慢体会到 NI 各种功能的用处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值