我正面临着一个问题,即Chrome在多个Rest Get电话(不是立即但经过一段时间的延迟)之后,即使我只请求一次。这种情况在其他浏览器中没有发生,似乎是针对Chrome的。
我正在工作的休息接听电话将返回音频或视频文件,并在浏览器中播放。播放音频和视频时,chrome正在进行其他调用,服务器正在抛出损坏的管道异常。以下是我从Chrome开发者工具
中看到的信息General Data
Request URL:http://localhost:6390/x/y/MP3
Request Method:GET
Status Code:200
Remote Address:[::1]:6390
Referrer Policy:no-referrer-when-downgrade
Request Headers
Accept:*/*
Accept-Encoding:identity;q=1, *;q=0
Accept-Language:en-US,en;q=0.8,te;q=0.6
Connection:keep-alive
Host:localhost:6390
Range:bytes=0-
Response Headers
Cache-Control:max-age=31536000, public
Content-Length:27133142
Content-Type:audio/mpeg
Date:Mon, 22 May 2017 01:00:31 GMT
Expires:Mon, 21 May 2018 21:00:31 GMT
如果我们查看第一次通话时响应的内容长度,它几乎是25 MB文件,但只下载大约5.3mb文件,当音频/视频正在播放下载文件时,Chrome正在进行额外通话当响应代码是200首次呼叫时。
即使我没有请求,这里也是第二次电话的信息。它会被Chrome自动调用
General Info
Request URL:http://localhost:6390/x/y/MP3
Request Method:GET
Status Code:200
Remote Address:[::1]:6390
Referrer Policy:no-referrer-when-downgrade
Request Headers
Accept:*/*
Accept-Encoding:identity;q=1, *;q=0
Accept-Language:en-US,en;q=0.8,te;q=0.6
Connection:keep-alive
Host:localhost:6390
Range:bytes=5421245-
Response Headers
Cache-Control:max-age=31536000, public
Content-Length:27133142
Content-Type:audio/mpeg
Date:Mon, 22 May 2017 01:20:07 GMT
Expires:Mon, 21 May 2018 21:20:07 GMT
第二个请求具有带范围的字节头。为什么Chrome使用范围标题进行第二次调用,即使第一次请求我发送的完整内容和响应代码为200.我的印象是,除非我使用Bytes Header 206,否则浏览器不应再拨打电话。
我已经检查了很多关于为什么Chrome正在进行额外通话的线程,但它们似乎不会成为我面临的问题。
请帮我解释为什么我在chrome上遇到这个问题,任何指针都会有所帮助。
我的Stack是Spring Boot,Spring Rest和Tomcat服务器