146 votes

Comparer HTTP et FTP pour transférer des fichiers

Quels sont les avantages (ou les limitations) de l’un sur l’autre pour le transfert de fichiers sur Internet?

(Je connais des formes sécurisées des deux protocoles. J'aimerais entendre des comparaisons à travers des expériences personnelles en termes de performances, de fiabilité, de limitations de taille de fichiers, etc.)

111voto

John Ellinwood Points 6578

Heres une comparaison des performances des deux. HTTP est plus sensible pour la requête-réponse de petits fichiers, mais FTP peut être mieux pour les gros fichiers si bien réglé. FTP utilisé pour être généralement considéré comme plus rapide. Serveur FTP nécessite un canal de contrôle et d'état d'être maintenu en plus de l'état TCP mais HTTP ne fonctionne pas. Il y a 6 transferts de paquets de données avant de commence le transfert en FTP, mais seulement 4 en HTTP.

Je pense que d'un point couche TCP aurait plus d'effet sur la vitesse de la différence entre les protocoles de la couche application. Le Soleil Plan de la Compréhension de Paramétrage TCP a des détails.

Heres une autre bonne comparaison des caractéristiques individuelles de chaque protocole.

30voto

Piskvor Points 46986

De nombreux pare-feu déposer les connexions sortantes qui ne sont pas pour les ports 80 ou 443 (http et https); quelques-uns même supprimer les connexions à ces ports qui ne sont pas en HTTP(S). FTP peut ou peut ne pas être autorisé, pour ne pas parler de l'actif/PASV modes.

Aussi, HTTP/1.1 permet de beaucoup mieux partielle des demandes ("envoyer uniquement à partir de l'octet 123456 à la fin du fichier"), sous réserve des demandes et de mise en cache ("envoyer uniquement si le contenu a changé/si la dernière mise à jour a changé") et le contenu de compression (gzip).

HTTP est beaucoup plus facile à utiliser via un proxy.

De mon anecdotiques, HTTP est plus facile de faire le travail avec le tombé/lent/feuilletée connexions; par exemple, il n'est pas nécessaire de (re)créer une session de connexion avant de (re)mettre en place le transfert.

Otoh, que, HTTP est sans état, de sorte que vous avez à faire de l'authentification et de la construction d'un sentier de "qui a fait quoi et quand" vous-même.

La seule différence dans la vitesse que j'ai remarqué, c'est le transfert de beaucoup de petits fichiers: HTTP avec le pipelining est plus rapide (réduit aller-retours, esp. visible sur les réseaux à latence élevée)

14voto

user83591 Points 3857

Une considération est que FTP peut utiliser des ports non standard, ce qui peut rendre difficile l’obtention de pare-feu (surtout si vous utilisez SSL). HTTP est généralement sur un port connu, ce qui pose rarement problème.

Si vous décidez d'utiliser FTP, assurez-vous de lire les informations sur le FTP actif et passif .

En termes de performances, à la fin de la journée, ils crachent tous les fichiers directement sur les connexions TCP, ce qui devrait être à peu près le même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X