Kami meng-host beberapa file video (mp4) di situs kami.
Semua file dimuat terlalu lambat di Google Chrome, di FF semuanya OK.
Saya menguji mengunduh file dengan ukuran 34MB (Saya membuka file dengan tautan langsung). Hasilnya adalah:
- Chrome membuat ~ 22000 permintaan (!) , 982MB ditransfer.
- Firefox hanya membuat 5 permintaan.
Sebagai server kami menggunakan nginx dengan pengaturan default (terkait dengan penyajian file video).
Di sini interaksi (lima permintaan pertama) antara Chrome dan server. Hanya Range
, Content-Length
, Content-Range
header disertakan.
(<- header dikirim oleh Chrome, <- satu dikirim oleh server):
> Initial request for file, usual GET
< Content-Length:35690389
< Content-Type:video/mp4
Then a bunch of similar requests, on which the server responded with 206 status code:
---
> Range:bytes=0-
< Content-Length:35690389
< Content-Range:bytes 0-35690388/35690389
---
> Range:bytes=29100305-
< Content-Length:6590084
< Content-Range:bytes 29100305-35690388/35690389
---
> Range:bytes=35566374-
< Content-Length:124015
< Content-Range:bytes 35566374-35690388/35690389
---
> Range:bytes=32-
< Content-Length:35690357
< Content-Range:bytes 32-35690388/35690389
Sepertinya Chrome salah paham beberapa tajuk yang dikirim dari server (mis. Rentang) dan mengunduh potongan file yang sama berkali-kali.
Apa yang mungkin menyebabkan masalah? Ada ide?
sumber