我在我的Java应用程序中有渐进式下载流,我使用Kevin的流行MultipartFileSender来提供视频:后端的https://gist.github.com/davinkevin/b97e39d7ce89198774b4#file-multipartfilesender和前端的video.js。
在此文件发件人中,有代码选中If-Match标头,如果它不匹配ETag(文件名),则会在响应中发送错误。
String ifMatch = request.getHeader("If-Match");
if (ifMatch != null && !HttpUtils.matches(ifMatch, fileName)) {
response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
return;
}
这是我的问题: 假设我将文件上传到系统并用HTML5视频播放打开页面 - 这里一切都很好,视频播放工作正常。然后,我用另一个替换了视频文件 - 该文件存储有不同的唯一文件名(内部逻辑)。在此之后,当我再次打开视频页面时,后端将使用新文件名检索新的视频文件,但浏览器仍会发送带有旧文件名的If-Match标头,因此出现不匹配:new_file_name!= If-Match header&# 39; s值。
我无法弄清楚浏览器在If-Match标头中发送弃用值的原因。你能指点一下If-Match标题的来源吗?我没有找到有关video.js发送或关于通过tomcat服务器添加此内容的任何信息。