Ospitiamo alcuni file video (mp4) sul nostro sito.
Tutti i file vengono caricati troppo lentamente in Google Chrome, in FF è tutto a posto.
Ho testato il download di un file con dimensioni di 34 MB (ho aperto il file con un collegamento diretto). I risultati sono:
- Chrome ha richiesto ~ 22000 (!) Richieste , trasferite 982 MB .
- Firefox ha fatto solo 5 richieste.
Come server utilizziamo nginx con le impostazioni predefinite (relative alla pubblicazione di file video).
Qui l'interazione (le prime cinque richieste) tra Chrome e il server. Solo Range
, Content-Length
, Content-Range
intestazioni incluse.
(<- header inviato da Chrome, <- uno inviato dal 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
Sembra che Chrome fraintenda alcune intestazioni che vengono inviate dal server (ad esempio Range) e scarica più volte gli stessi file.
Cosa potrebbe causare il problema? Qualche idea?