Nous hébergeons des fichiers vidéo (mp4) sur notre site.
Tous les fichiers sont chargés trop lentement dans Google Chrome, dans FF tout va bien.
J'ai testé le téléchargement d'un fichier de 34 Mo (j'ai ouvert le fichier par un lien direct). Les résultats sont:
- Chrome a fait ~ 22 000 (!) Demandes, 982 Mo transférés.
- Firefox n'a fait que 5 demandes.
En tant que serveur, nous utilisons nginx avec les paramètres par défaut (liés à la diffusion de fichiers vidéo).
Voici l'interaction (les cinq premières requêtes) entre Chrome et le serveur. Seulement Range
, en Content-Length
- Content-Range
têtes inclus.
(<- en-tête envoyé par Chrome, <- celui envoyé par le serveur):
> 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
Il semble que Chrome comprenne mal certains en-têtes envoyés par le serveur (par exemple, Range) et télécharge plusieurs fois les mêmes fichiers.
Qu'est-ce qui pourrait causer le problème? Des idées?
la source