边缘浏览器收到304状态码时无法播放视频

10

我发现当播放视频第二次时,Edge浏览器无法正常工作。我的应用程序使用默认的<video>标签,而Edge在第二次加载视频时发送了一个If-Modified-Since头信息。如果我的服务器返回304未修改状态码,则无法正常工作。将其更改为返回完整视频则可以解决问题。

有人能验证这种行为吗?我是否做错了什么?我应该在我的304响应中添加其他内容以使其正常工作吗?

顺便说一句,我发现像Chrome和Firefox等其他浏览器在加载视频时从不发送If-Modified-Since


乍一看,这似乎是Edge中的缓存错误。对于大多数服务器来说,很容易修改它们以忽略某些资源上的标头 - 因此,如果视频不可缓存(即太大),那么可以作为解决方法。 - nneonneo
视频是否通过https进行流式传输?如果是的话,您可以尝试使用http进行传输,以查看是否有任何区别吗? - Alex KeySmith
@nneonneo 那最终是我所做的 - 禁用边缘缓存。 - Andre
@AlexKeySmith,这已经结束了,我们还没有使用https(但)。 - Andre
1个回答

4
您可以查看这个stackexchange问题,您可以阅读下面内容:
根据这篇文章,以下是浏览器将使用If-Modified-Since请求的情况:
  • 缓存条目没有过期日期,并且在浏览器会话中第一次访问内容
  • 缓存条目具有过期日期,但已过期
  • 用户通过单击刷新按钮或按F5请求页面更新
添加“public”到缓存控制头中可能有所帮助,例如:Cache-Control: public, max-age=31536000
此外,您也可以添加immutable
Cache-Control: public, max-age=31536000, immutable

谢谢 Stefani,我会尝试并检查这是否有所改变。 - Andre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接