Je téléchargeais un fichier de 200 Mo hier avec FlashGet dans les statistiques il a montré qu'il utilisait le protocole HTTP1.1. J'ai eu l'impression que HTTP est un protocole de requête-réponse et le plus généralement utilisé pour les pages Web pesant quelques KiB ... Je ne comprends pas très bien comment il peut télécharger MB ou GB de données et cela aussi 5 (ou plus) différents flux.Comment les gestionnaires de téléchargement téléchargent-ils des fichiers volumineux sur HTTP sans plusieurs demandes?
Répondre
HTTP/1.1 a un en-tête "Range" qui peut spécifier quelle partie d'un fichier à transférer sur la connexion. Le gestionnaire de téléchargement peut établir plusieurs connexions, en spécifiant différentes plages à transférer. Il serait alors combiner les morceaux ensemble pour construire le fichier complet.
Il n'y a pas de limite de taille dans http. Il est utilisé pour les pages Web, mais il est également utilisé pour fournir une grande majorité du contenu sur Internet. C'est plus une question de bande passante qui limite les tailles, pas le protocole lui-même. Et bien sûr, c'était plus une limite dans les premiers jours. (et, je suppose, ceux qui sont encore sur la numérotation)
Quel processus l'utilisation du gestionnaire de téléchargement pour télécharger des fichiers volumineux avec plusieurs flux avec juste une poignée de demandes? –
Incidemment, je les avais tous lus il y a 2 jours, mais je ne comprenais toujours pas les bases de Download Managers et de HTTP 1.1 ... –
Si la connexion se casse ou meurt, comment sait-elle où recommencer? Comment fait-il le suivi des octets transférés, etc. dans ce cas? –
Le téléchargeur sait combien de données ont été transférées sur une connexion donnée en ne comptant que le nombre d'octets reçus. Il pourrait alors établir une nouvelle connexion et spécifier une plage d'octets à transférer qui commence après les octets transférés. Le processus de téléchargement serait essentiellement: 1. récupérer la longueur du fichier de données 2. calculer un nombre de morceaux à transférer par ex. divisez le fichier en blocs de 1 Mo, par exemple 3. Démarrez un certain nombre de connexions parallèles qui transfèrent ces segments , c'est-à-dire les octets 1-10000, 1000001-2000000 et ainsi de suite. –