返回

从天猫某活动视频 3 次请求说起

前端

今天,我们来分析一下天猫某活动视频 3 次请求的详细过程。

第一次请求

第一次请求是发送到 CDN 节点的,请求头如下:

GET /video2/stream.mp4 HTTP/1.1
Host: cdn.example.com
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36

请求体为空。

服务器响应如下:

HTTP/1.1 200 OK
Content-Type: video/mp4
Content-Length: 1024000

响应体是视频文件。

第二次请求

第二次请求是发送到回源服务器的,请求头如下:

GET /video2/stream.mp4 HTTP/1.1
Host: origin.example.com
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36

请求体为空。

服务器响应如下:

HTTP/1.1 200 OK
Content-Type: video/mp4
Content-Length: 1024000

响应体是视频文件。

第三次请求

第三次请求是发送到 CDN 节点的,请求头如下:

GET /video2/stream.mp4 HTTP/1.1
Host: cdn.example.com
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36
Range: bytes=0-1023999

请求体为空。

服务器响应如下:

HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Length: 1024000
Content-Range: bytes 0-1023999/1024000

响应体是视频文件的一部分。

分析

通过分析这 3 次请求,我们可以得出以下结论:

  • 第一次请求是发送到 CDN 节点的,CDN 节点会将视频文件缓存起来,以提高访问速度。
  • 第二次请求是发送到回源服务器的,回源服务器会将视频文件发送给 CDN 节点。
  • 第三次请求是发送到 CDN 节点的,CDN 节点会将视频文件的一部分发送给客户端。

优化建议

为了优化视频的访问速度,我们可以采取以下措施:

  • 将视频文件上传到 CDN,并配置 CDN 节点,以提高访问速度。
  • 使用 HTTP 范围请求,以减少视频文件的下载时间。
  • 使用视频编码器对视频文件进行编码,以减少视频文件的大小。
  • 使用视频播放器对视频文件进行播放,以提高视频播放的流畅性。