火绒安全软件

火绒安全软件6.0
发新帖
打印 上一主题 下一主题

[产品问题] 问题

[复制链接]
2797 2
楼主
发表于 2024-4-10 23:49:02 | 只看该作者 |只看大图 |正序浏览 |阅读模式
跳转到指定楼层
本帖最后由 www. 于 2024-4-10 23:51 编辑

有关于火绒论坛《6.0内测版新功能简介》帖子内视频无法预览播放的问题,发现以下问题线索:

1. 发现火绒论坛在请求相关视频时,响应头Content-Type类型为application/octet-stream,如下图所示:

application/octet-stream指任意类型的二进制流数据,一般下载文件返回的是这种类型,部分浏览器可能会由于无法识别数据类型,所以会直接进行下载。
例如,通常图片资源返回的Content-Type类型是image/png或image/jpeg诸如此类浏览器可以直接识别打开的文件,所以就不会执行下载事件。
查看帖子内html数据后发现,其在<video>标签之间并没有添加type类型,如下图所示:

音频文件常见type有audio/ogg audio/mpeg audio/wav等,视频文件常见type有video/mp4 video/webm video/ogg等
可以在controls下为同一个资源文件添加多个type尝试:
  1. <source src="{URL}" type="video/mp4" />
  2. <source src="{URL}" type="video/webm" />
  3. <source src="{URL}" type="video/ogg" />
复制代码
参考资料:
https://zhuanlan.zhihu.com/p/379989598
https://cloud.tencent.com/developer/article/2271818
https://blog.csdn.net/weixin_45631278/article/details/124195515
https://www.php.cn/faq/492555.html

2. 火绒论坛不支持HTTP协议的范围请求(HTTP Range Requests),可能会导致Safari浏览器无法正常加载视频文件
范围请求允许客户端请求服务器只发送响应中特定部分的字节范围。服务器在收到请求后,如果支持范围请求,会返回一个状态码为206 Partial Content的响应,并在响应头中包含Content-Range字段,指示响应内容的范围。如果服务器不支持范围请求,它会返回一个状态码为200 OK的响应,并包含完整的实体内容。这种请求通常用于下载工具实现多线程下载,或者在下载大文件时实现断点续传。
Safari浏览器在预览视频文件时,会尝试发送一个Range: bytes=0-1的范围请求,也就是要先请求一个字节的内容,并得到服务器206 Partial Content的响应,然后才会继续访问
这里以支持范围请求的网站为例,抓包GET请求之后Safari浏览器发出的第一个响应信息和服务器返回的响应信息,如下图所示:


(后续会继续有多个206 Partial Content通信,在后续的通信中,Range: bytes中的值会发生变化)
而在火绒论坛中,当Safari浏览器发出Range: bytes=0-1请求之后,火绒论坛直接返回了200和完整的一整个视频文件,说明并不支持范围请求,如下图所示:


参考资料:
https://blog.csdn.net/weixin_43910988/article/details/133765687
https://www.jianshu.com/p/f69e3417a79e
回复

使用道具 举报

2797 2
5#
发表于 2024-4-15 13:50:45 | 只看该作者
您好,您反馈的论坛问题目前已经提交优化,工程师正在跟进处理中,问题解决后会给您同步信息,您也可以根据ID联系我查询问题处理进展,感谢反馈,【问题ID:49782】
回复

使用道具 举报

2797 2
地板
发表于 2024-4-11 08:28:29 | 只看该作者
您好,感谢您的反馈,我们确认下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

快速回复 返回顶部 返回列表