provisional headers are shown 知多少

前言

请求里面provisional headers are shown(显示临时报头) 出现的情况很多,但原因是多样的。

如果你去直接匹配关键字搜索,得到的结果可能与你自己的情况大相径庭。

网上大部分都是在跨域时出现,或者是请求被插件拦截,但关于缓存时的请求很少。

我在上文查看缓存的时候发现了这个问题,当时查找资料都是聚焦于请求被拦截,

所以本文就简单整理一下相关情况。

问题描述

当刷新页面时,想要查看http请求header中相关信息时,

发现使用缓存的请求(from disk cache或者from memory cache)header相关信息不能查看

第一次看到确实有点疑惑,那么就去搜索了下。

碰到这个提示的情况挺多,但细看下与我们的场景不太符合。

基本上遇到的都是provisional headers are shown,阻止了请求的正常加载。

而我们只是在使用缓存的时候遇到,而看起来请求没有被block掉。好像不太符合。

问题定位

虽然没有看到匹配度十分相关的信息,但看到了有启发的一篇文章(详情点击)

摘抄部分如下:

The resource could be being blocked by an extension (AdBlock in my case).

The message is there because the request to retrieve that resource was never made, so the headers being shown are not the real thing. As explained in the issue you referenced, the real headers are updated when the server responds, but there is no response if the request was blocked.

资源可能被一些扩展程序拦截 。

另外还有一句:

I believe it happens when the actual request is not sent. Usually happens when you are loading a cached resource.

真正请求并未被发送,当使用缓存时经常发生。

之所以会出现这个信息是因为获取相关资源的请求并没有发出,

所以headers被展示并不是真正的信息。

就像提到的那样,真正的header只有在服务端返回的时候会更新。

当请求被拦截后,并没有返回。

基于这个情况开始猜测原因所在:

猜测一、请求跨域被拦截

虽然现在网站的静态资源都会存在专门的静态域名下面,和html域名可能不一致。

但是基本都是基于CORS来解决这个问题,所以不存在这个问题。

再有就是,我们这种情况首次请求的时候不会发生,如果有跨域,应该都被block。

另外如果是被拦截,那么请求应该不会被响应的,我们这里显然得到了正确的响应。

这种被排除。

猜测二、服务器未及时响应

这种猜测和一差不多,特定情况下才会出现,跟服务器关联不大。

猜测三、被扩展程序拦截

作为一个开发人员,大家的chrome上肯定装了不少的插件。这种原因还是有可能的。

我们可以通过 chrome://net-internals 来根据关键字查找相关请求,

然后具体去看相关状态。

例如我们http://xxdy.tech/css/main.css?v=5.1.4请求

可以看到并没有出现block,timeout等字段,只能看到比较明显的DISK_CACHE。

因此这种情况也不满足,我们应该是和本地缓存强烈相关的。

本地缓存

结合上面的分析,我们可以缩小到缓存上面。冲着这个目标,我们继续去看下相关资料。

最后在一篇日文资料里找到了相关解释。

似乎只从缓存中获得的通信显示为“显示临时标题”(或“执行”)

因为该文件是从缓存中获取的,并且未进行通信

所以详细标头并不会显示。

原因:未与服务端正确通信

回过头来看,前面提到的那么多情况其实都是与服务器没有进行或者完成正确的通信,所以只展示临时信息。

常见状况

provisional headers are shown出现的情况有这么几种:

  1. 跨域,请求被浏览器拦截
  2. 请求被浏览器插件拦截
  3. 服务器出错或者超时,没有真正的返回
  4. 强缓存from disk cache或者from memory cache,此时也不会显示

结束语

到这里provisional headers are shown相关总结就结束了,本身并不是一个问题,但在自身不了解的情况下还是要去研究一下,不然永远是个问题。本文抛砖引玉,给自己一个总结,同时希望能给有需要人一些帮助。

参考文章

https://stackoverflow.com/questions/21177387/caution-provisional-headers-are-shown-in-chrome-debugger

https://did2memo.net/2017/01/23/chrome-devtools-provisional-headers-are-shown/

http://www.techfolks.net/provisional-headers-are-shown-in-google-chrome-browser-debugger/

原文地址:https://www.cnblogs.com/pqjwyn/p/10042492.html

时间: 2024-10-14 13:25:23

provisional headers are shown 知多少的相关文章

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

在POST请求中偶尔会出现"CAUTION: Provisional headers are shown" 这个警告的意思是说:请求的资源可能会被(扩展/或其它什么机制)屏蔽掉. 之所以会出现这个警告.是由于去获取该资源的请求事实上并(还)没有真的发生,所以 Header 里显示的是伪信息,直到server真的有响应返回,这里的 Header 信息才会被更新为真实的. 只是这一切也可能不会发生.由于该请求可能会被屏蔽.比方说 AdBlock 什么的,当然了不全是浏览器扩展.详细情况详细

Chrome v39 问题 Provisional headers are shown

1,网站突然访问不到图片了. 发现: Provisional headers are shown 解决:删除chrome ,然后重启chrome即可. 第一个 http 请求实际上根本没有产生,对应的请求头当然也不应该存在.但对于这样的请求,Chrome 也会显示部分请求头信息,并给出「CAUTION:Provisional headers are shown」这样的提示. 一般来说,如果看到这个提示,说明这个请求并没有发送出去.具体原因有多种,除了上面提到的情况外,还可能是请求被某些扩展如 A

chrome提示错误:CAUTION:Provisional headers are shown 解决办法

最近作微信的开发因为前台和后台不再一个地方办公,前台也不会写php和ajax所以就造成了一种我些后台服务,她写前台调用的模式,让她的ajax直接访问我的服务端口,我提供给她数据,类似于写接口一样,于是问题出来了.前台ajax访问请求总是执行error.事例代码如下 前台测试代码index.html: <!DOCOMENT html> <html> <head> <title>测试</title> <script type="tex

nginx Provisional headers are shown

项目用的Nginx做的代理,重启电脑后,重启项目和Nginx 浏览器报 Provisional headers are shown  解决: host文件添加: 127.0.0.1   cleaner.test nginx 配置文件修改 原文地址:https://www.cnblogs.com/kingxiaozi/p/10015955.html

浏览器警告:provisional headers are shown

今天遇到一个问题,和java小哥哥讨论了一下 https请求http | http请求https 重定向出现的问题 登录过期之后请求后台,浏览器报provisional headers are shown 并且所有的请求都没有请求到后台 原因: 1,后台用的shell自带的filter 过滤器 直接就给了前端302(重定向) 2,前端是https(并且不支持http),然后java内部转发是http请求 然后前端也跟着重定向后台给的location 就会报错 请求不了 解决方案: 1,后台小哥哥

Provisional headers are shown

问题回顾: 在表单里面,有个button按钮,在点击这个button的时候,我发送了ajax请求,然后请求成功的话,就使用window.location.href = xxx,跳转到其他页面 但是,一请求这个目标页面,就会触发Provisional headers are shown  ,在chrome里的network里看 请求被取消了 解决方法1:表单标签对于我是没有任何的作用,直接将表单标签删除,就可以解决问题. 原因:这是因为触发了表单的提交事件,在ajax请求成功后,最后又执行了表单的

http请求头出现provisional headers are shown

http请求头出现provisional headers are shown Provisional headers are shown provisional 详细用法>> 英 [pr?'v??(?)n(?)l]美 [pr?'v???nl] adj. 临时的,暂时的:暂定的 n. 临时邮票 [例句] McGuiness assured him of the Provisionals' good will. 麦吉尼斯向他保证爱尔兰共和军临时派有善意. show 详细用法>> 英 [

chrome诡异的Provisional headers are shown

昨天吐槽了cocos2d-js的问题,所以就准备调研几个其它HTML5引擎,发现PIXI性能极高,但是没有音频.而Phaser.js是在PIXI.js的基础之上进行的封装.而国内有一家公司,开发一个叫青瓷的引擎(QICI),看上去还蛮不错的,所以准备拿过来调研.看它的文档时,发现视频无法加载,调出控制台面板出来看了一下,发现是这样的: 但是我新选项卡打开时,却是可以请求并下载的   搜了下资料,百度fex这篇写的很深入<关于请求被挂起页面加载缓慢问题的追查> 我查了一下安装的插件并升级了chr

chrome Provisional headers are shown错误提示

1.一般出现这个错误是请求没有发送成功 可能原因:在上传文件或ajax上传时指定的timeout,过时时间小 其他资料: http://www.duanzhihe.com/575.html http://segmentfault.com/q/1010000000364871