首页 » SEO优化 » blobhttpphp技巧_解读blobhttp 地址的事理及生成方法

blobhttpphp技巧_解读blobhttp 地址的事理及生成方法

访客 2024-12-11 0

扫一扫用手机浏览

文章目录 [+]

比如日常利用的一些音频,视频,图片,我们都可以利用其 Blob 二进制数据流来表征数据,而非利用 uri,就像常常用到的 image src 的 dataUrl。

要利用 blob 来表征数据资源,需做到以下两点:

blobhttpphp技巧_解读blobhttp 地址的事理及生成方法

1、做事端返回的为资源的二进制数据

blobhttpphp技巧_解读blobhttp 地址的事理及生成方法
(图片来自网络侵删)

2、前端吸收到二进制数据后,利用 URL.createObjectURL(blobData) 方法将做事端返回的二进制数据转换为 blob 的 url 资源挂载到相应的资源工具。

实例

对 video.mp4 资源加密,不该用静态 url 进行加载,利用 blob url 进行加密。

做事端 index.php

<?php// 返回二进制流数据$file_path = __DIR__ . '/video.mp4';$file_size = filesize($file_path);$oct_data = fread(fopen($file_path, "r"), $filesize); header("Content-type: video/mpeg4;charset=UTF-8");header("Content-Length: " . $filesize);echo $oct_data;

前端 index.html

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Blob Url</title></head><body> <video id="video" width="400" controls="controls"></video> <script type="text/javascript"> //创建XMLHttpRequest工具 var xhr = new XMLHttpRequest(); //配置要求办法、要求地址以及是否同步 xhr.open('POST', '/index.php', true); //设置要求结果类型为blob xhr.responseType = 'blob'; //要求成功回调函数 xhr.onload = function(e) { if (this.status == 200) {//要求成功 //获取blob工具 var blob = this.response; //获取blob工具地址,并把值赋给容器 document.getElementById("video").src = URL.createObjectURL(blob); } }; xhr.send(); </script></body></html>

这样真是的视频资源静态地址就可以被隐蔽掉了

我们只是实例讲解下如何天生 blob 资源地址,生产中是很少会将一个资源以二进制流的办法返回给前端进行 Blob “加密”的,由于做事端须要将相应的资源打开读取,会花费对应的内存,比如一个视频如果50M,那我们做事端返回其二进制数据时,就要花费 50M 的做事器内存将文件载入,然后返回给前端,这代价略大,而且网络传输相应速率也不许可,如果返回个 500M 的二进制数据,估计就会有很大的卡顿了。

生产场景每每是对切片格式的视频 m3u8 地址进行 blob 格式处理,实在并不是为了加密,由于浏览器还是会解析 blob 并去 get 要求对应的 m3u8 地址,利用 blob uri 的好处在于可以在一定层度上滋扰爬虫。

标签:

相关文章

成都署理php技巧_公开招聘

近期市委社会事情部会同市委组织部、市财政局、市人社局拟招聘一批高校毕业生投身成都城乡社区事情找事情的小伙伴看过来青羊区、武侯区、成...

SEO优化 2024-12-12 阅读0 评论0