जवाबों:
यहां दोनों की तुलना का प्रदर्शन है । HTTP छोटी फ़ाइलों के अनुरोध-प्रतिक्रिया के लिए अधिक उत्तरदायी है, लेकिन अगर ठीक से ट्यून की जाए तो FTP बड़ी फ़ाइलों के लिए बेहतर हो सकता है। एफ़टीपी को आम तौर पर तेज़ माना जाता था। FTP को एक नियंत्रण चैनल की आवश्यकता होती है और टीसीपी राज्य के अलावा राज्य को बनाए रखा जाता है लेकिन HTTP नहीं करता है। एफ़टीपी में डेटा स्थानांतरित होने से पहले 6 पैकेट स्थानान्तरण होते हैं लेकिन HTTP में केवल 4।
मुझे लगता है कि ठीक से ट्यून की गई टीसीपी लेयर का अनुप्रयोग लेयर प्रोटोकॉल के बीच अंतर की तुलना में गति पर अधिक प्रभाव पड़ेगा। सन ब्लूप्रिंट अंडरस्टैंडिंग ट्यूनिंग टीसीपी में विवरण है।
प्रत्येक प्रोटोकॉल की व्यक्तिगत विशेषताओं की एक और अच्छी तुलना Heres ।
मैंने केवल एफ़टीपी और एचटीटीपी दोनों पर एक फ़ाइल स्थानांतरण को बेंचमार्क किया:
परिणाम:
fdm
): 1 मिनट का उपयोग करनातो, मूल रूप से "वास्तविक जीवन" स्थिति के तहत:
1) एक बड़ी फ़ाइल डाउनलोड करते समय HTTP एफ़टीपी से अधिक तेज़ है।
2) HTTP समानांतर चंक डाउनलोड का उपयोग कर सकता है जो नेटवर्क स्थितियों के आधार पर FTP की तुलना में 6 गुना तेज बनाता है।
कई फ़ायरवॉल आउटबाउंड कनेक्शन को छोड़ देते हैं जो 80 या 443 (http & https) पोर्ट के लिए नहीं हैं; कुछ भी उन बंदरगाहों से कनेक्शन छोड़ देते हैं जो HTTP (S) नहीं हैं। FTP को सक्रिय / PASV मोड की बात करने या न करने की अनुमति दी जा सकती है।
इसके अलावा, HTTP / 1.1 बहुत बेहतर आंशिक अनुरोधों के लिए अनुमति देता है ("केवल बाइट 123456 से फ़ाइल के अंत तक भेजें"), सशर्त अनुरोध और कैशिंग ("केवल अगर सामग्री बदली गई / यदि अंतिम-संशोधित-दिनांक बदली गई है") और सामग्री संपीड़न (gzip)।
एक प्रॉक्सी के माध्यम से HTTP का उपयोग करना बहुत आसान है।
मेरे वास्तविक सबूत से, HTTP को गिरा / धीमा / परतदार कनेक्शन के साथ काम करना आसान है; उदाहरण के लिए (पुनः) हस्तांतरण आरंभ करने से पहले (पुनः) सत्र की आवश्यकता नहीं है।
OTOH, HTTP स्टेटलेस है, इसलिए आपको प्रमाणीकरण करना होगा और "जो तब किया जब" स्वयं का एक निशान बनाना होगा।
गति में एकमात्र अंतर जो मैंने देखा है, बहुत सारी छोटी फ़ाइलों को स्थानांतरित कर रहा है: पाइपलाइनिंग के साथ HTTP तेज है (उच्च-विलंबता नेटवर्क पर राउंड-ट्रिप, esp पर ध्यान देने योग्य) को कम करता है।
ध्यान दें कि HTTP / 2 और भी अधिक अनुकूलन प्रदान करता है, जबकि FTP प्रोटोकॉल ने दशकों तक कोई अपडेट नहीं देखा है (और यहां तक कि एफ़टीपी के एक्सटेंशन को उपयोगकर्ताओं द्वारा महत्वहीन है)। इसलिए, जब तक आप टाइम मशीन के जरिए फाइल ट्रांसफर नहीं कर रहे हैं, तब तक लगता है कि HTTP जीत गई है।
(विशिष्ट रूप से: ऐसे प्रोटोकॉल होते हैं जो फ़ाइल स्थानांतरण के लिए बेहतर होते हैं, जैसे कि rsync
या बिटटोरेंट, लेकिन उनमें उतना माइंडशेयर नहीं होता है, जबकि HTTP एवरीवेयर ™ है)
एक विचार यह है कि एफ़टीपी गैर-मानक पोर्ट का उपयोग कर सकता है, जो फायरवॉल को कठिन बना सकता है (विशेषकर यदि आप एसएसएल का उपयोग कर रहे हैं)। HTTP आमतौर पर एक ज्ञात बंदरगाह पर है, इसलिए यह शायद ही कभी एक समस्या है।
यदि आप एफ़टीपी का उपयोग करने का निर्णय लेते हैं, तो सुनिश्चित करें कि आपने सक्रिय और निष्क्रिय एफ़टीपी के बारे में पढ़ा है ।
प्रदर्शन के संदर्भ में, दिन के अंत में वे दोनों सीधे टीसीपी कनेक्शन की फाइलों को उगल रहे हैं, इसलिए उसी के बारे में होना चाहिए।