Wir hosten einige Videodateien (mp4) auf unserer Website.
Alle Dateien werden in Google Chrome viel zu langsam geladen, in FF ist alles in Ordnung.
Ich habe das Herunterladen einer Datei mit einer Größe von 34 MB getestet (ich habe die Datei über einen direkten Link geöffnet). Die Ergebnisse sind:
- Chrome hat ~ 22000 (!) Anfragen gestellt, 982 MB übertragen.
- Firefox hat nur 5 Anfragen gestellt.
Als Server verwenden wir Nginx mit Standardeinstellungen (in Bezug auf die Bereitstellung von Videodateien).
Hier erfolgt die Interaktion (die ersten fünf Anfragen) zwischen Chrome und dem Server. Nur Range
, Content-Length
, Content-Range
inklusive Header.
(<- Header von Chrome gesendet, <- einer vom Server gesendet):
> 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
Es sieht so aus, als würde Chrome einige Header, die vom Server gesendet werden (z. B. Range), falsch verstehen und dieselben Dateien mehrmals herunterladen.
Was könnte das Problem verursachen? Irgendwelche Ideen?
quelle