Quelle est la taille maximale des fichiers que je peux transférer en utilisant HTTP? Et en utilisant le protocole FTP?
Ajouté: je mène une étude pour un nouveau système que nous allons développer dans mon travail. Il consiste à authentifier les utilisateurs, à afficher les fichiers qu'ils veulent télécharger et à les télécharger. Aussi, si les fichiers ne sont pas facilement disponibles, l'utilisateur ne peut pas les télécharger, mais le serveur obtient une copie du fichier demandé et avertit l'utilisateur par mail quand il peut obtenir le fichier. Nous nous attendons à des fichiers typiquement de 2 à 50 gigaoctets, pour l'instant.
je veux juste pour vérifier s'il est possible d'écrire une application Web pour résoudre le problème ou si nous avons besoin de faire une solution client-serveur.
7 réponses
Il n'y a pas de maximum. Tout max que vous rencontrez est spécifique à l'application ou au site.
j'ai téléchargé des DVD isos de Microsoft en utilisant HTTP et FTP sans problème (~4gb).
j'ai aussi téléchargé d'énormes fichiers via les deux méthodes.
pouvez-vous préciser ce que vous essayez de faire?
Comme déjà répondu, le protocole n'a pas de limites, mais la plupart des HTTP serveurs par défaut des limites de chargement out-of-the-box:
IIS6Maxrequestentity allowed (la valeur par défaut est de 4 go) et Aspmaxrequestentity allowed (valeur par défaut est de 200 000 octets)métabase.xml.
IIS7 utilise maxrequestentity allowed: * * appcmd set config / section: asp/maxrequestentity allowed:** * int* (default is 200 000 octets)
Apache utilise LimitRequestBody (la valeur par défaut est de 2 go)
il n'y a pas une telle limitation par conception dans les protocoles que vous avez dit. Seuls les timeouts sur des serveurs concrets
le téléchargement dans HTTP est généralement limité car le serveur doit attendre jusqu'à ce que le téléchargement (généralement lent) soit terminé pour répondre à la requête.
Et une question importante - allez-vous à télécharger ou télécharger?
je pourrais dire que le téléchargement a beaucoup moins de limites que le téléchargement. Je ne sais pas pourquoi. Peut-être parce que le but principal de HTTP et FTP est d'envoyer des données, pas de recevoir.
C'est pourquoi les serveurs HTTP/FTP pourraient interrompre la session de téléchargement plus fréquemment plutôt que la session de téléchargement.
puisque la taille d'un transfert est probablement indiquée au début, je parie que la limite de la taille de votre fichier est la même que la limite pour un entier non signé. A en juger par la période où HTTP et FTP sont devenus populaires et utiles, je dirais que c'est un entier non signé 32 bits, donc 2^32 octets, or 4.0 GiB.
pour le protocole TCP, vous avez un numéro de séquence de 0 à 2^32-1. Supposons pire des cas, lorsque vous augmentez la séquence de 1 pour chaque octet. La taille maximale des fichiers est maintenant de 4 Go. Et vous avez une connexion 1GBps. Toute la séquence se termine en 4sec qui est enveloppé dans le temps. Si TTL est plus grand que wrap around time donc nous ne pouvons pas réutiliser la séquence donc la taille maximale du fichier est de 4 Go.
mais Magic est dans les Options TCP, dans options on peut ajouter un timestamp. Maintenant Problème résolu même si nous obtenons avec la même source et même destination même numéro de séquence, mais nous avons un timestamp différent à identifier.