2012-06-26 12 views
52

मुझे जावा एप्लिकेशन विकसित करना है जिसे नेटवर्क पर कुछ फाइलें पढ़नी हों, उन्हें संपादित करें और उन्हें वापस रखें।कौन सी फ़ाइल एक्सेस सबसे अच्छी है: वेबडाव या एफ़टीपी?

समस्या यह है कि मैंने हमेशा एफ़टीपी प्रोटोकॉल के माध्यम से फ़ाइल ऑपरेशन (नेटवर्क पर) किया। लेकिन, मैंने हाल ही में वेबडाव के बारे में सुना है जो HTTP आधारित है।

क्या किसी ने उनके बीच कोई अंतर (गति के संदर्भ में) देखा था? कौन सा सबसे अच्छा है ? अगर एफ़टीपी उस के लिए अच्छा है तो उन्होंने वेबवॉव का आविष्कार क्यों किया?

+1

यह प्रश्न कैसे बंद नहीं किया गया है? – Nakilon

+2

मुझे आश्चर्य है कि इस प्रश्न को फिर से खोलने के योग्यता के लिए दोहराया जा सकता है। पहली नज़र में, एफ़टीपी और वेबडाव बिल्कुल एक ही उद्देश्य की सेवा करते प्रतीत होते हैं, और यह जानना बहुत उपयोगी होगा कि दूसरे पर एक का उपयोग कब किया जाए। – Ajedi32

+5

संबंधित: [क्या प्रश्न जो तुलना के लिए पूछ सकते हैं रचनात्मक हो सकते हैं?] (Http://meta.stackoverflow.com/q/251328/1157054) इसके अनुसार, यह प्रश्न असुरक्षित है। दूसरी तरफ, इस प्रश्न में वर्तमान में लगभग 30k विचार हैं, और कई अपवित्र हैं, और निकटतम कारण में दावा के बावजूद कि "इस प्रश्न का उत्तर लगभग तथ्यों, संदर्भों या विशिष्ट विशेषज्ञता के बजाय विचारों पर आधारित होगा ", इस प्रश्न के उत्तर स्पष्ट रूप से अन्यथा प्रदर्शित करते हैं। – Ajedi32

उत्तर

1

वेबडाव के पास फायरवॉल के आसान पास (कोई अलग नियंत्रण/डेटा सॉकेट) के संबंध में एफ़टीपी पर फायदे हैं। गति लगभग समान होनी चाहिए क्योंकि दोनों प्रोटोकॉल फ़ाइल को कच्चे टीसीपी सॉकेट पर स्थानांतरित करते हैं।

+0

क्या आप थोड़ा और बता सकते हैं? – David

57

WebDAV FTP पर निम्न लाभ हैं: यह बाईपास फायरवॉल, NATs और प्रॉक्सी के लिए यह कॉन्फ़िगर करने के लिए आसान है

  1. एक TCP कनेक्शन के माध्यम से काम करके। एफ़टीपी में डेटा चैनल उचित एनएटी सेटअप के साथ समस्याएं पैदा कर सकता है।

  2. फिर से एक टीसीपी कनेक्शन के कारण, जो लगातार हो सकता है, वेबडावी कई छोटी फ़ाइलों को स्थानांतरित करते समय एफ़टीपी से थोड़ा तेज होगा - प्रत्येक फ़ाइल के लिए डेटा कनेक्शन बनाने की आवश्यकता नहीं है।

  3. जीजेआईपी संपीड़न HTTP के लिए मानक है लेकिन एफ़टीपी के लिए नहीं (हाँ, मोड जेड को एफ़टीपी में पेश किया गया है, लेकिन यह किसी भी मानक में परिभाषित नहीं है)।

  4. HTTP में प्रमाणीकरण विधियों की विस्तृत पसंद है जो एफ़टीपी में परिभाषित नहीं हैं। उदाहरण के लिए। एनटीएलएम और केर्बेरो प्रमाणीकरण HTTP में सामान्य है और एफ़टीपी में उनके लिए उचित समर्थन प्राप्त करना मुश्किल है जब तक आप एफ़टीपी के क्लाइंट और सर्वर दोनों पक्षों को लिखते हैं।

  5. वेबडीवी आंशिक स्थानान्तरण का समर्थन करता है और एफ़टीपी आंशिक अपलोड संभव नहीं है (यानी आप फ़ाइल के बीच में एक ब्लॉक को ओवरराइट नहीं कर सकते हैं)।

विचार करने के लिए एक और बात (आप सर्वर पर नियंत्रण के आधार पर) नहीं है - SFTP (SSH फाइल ट्रांसफर प्रोटोकॉल, नहीं किसी भी तरह से एफ़टीपी से संबंधित)। एसएफटीपी वेबडावी से अधिक फीचर समृद्ध है और एसएफटीपी रिमोट फाइल सिस्टम तक पहुंचने के लिए एक प्रोटोकॉल है, जबकि वेबएडीवी को अबाउट्रेशन के साथ डिजाइन किया गया था (वेबडीवीवी "दस्तावेज" के लिए था, जबकि एसएफटीपी फाइलों और निर्देशिकाओं के लिए है)। एसएफटीपी के ऊपर वेबडावी के लिए ऊपर उल्लिखित सभी लाभ हैं और दोनों प्रशासकों और डेवलपर्स के बीच अधिक लोकप्रिय हैं। प्रश्न के लिए

+0

आंशिक अपलोड किसी भी मानक में परिभाषित नहीं हैं। – Evert

+0

@ पता करें * क्या * आपका मतलब था? HTTP में रेंज और सामग्री-रेंज को कोई भी मना नहीं करता है, इसलिए जब क्लाइंट और सर्वर दोनों इसे संभाल सकते हैं, तो यह संभव है। –

+2

वे शीर्षलेख विशेष रूप से _fetching_ के लिए हैं, संसाधन अपलोड नहीं कर रहे हैं। Httpbis चश्मा विशेष रूप से PUT अनुरोधों के साथ संयोजन में श्रेणियों का उपयोग करने के खिलाफ अनुशंसा करता है क्योंकि इससे अवांछित परिणाम हो सकते हैं। स्रोत: मैं एक प्रमुख वेबडैव सर्वर का लेखक हूं और मैं दैनिक आधार पर आरएफसी के माध्यम से हल करता हूं। – Evert

24

उत्तर - Why did they "invent" Webdav

WebDAV Web Distributed Authoring and Versioning के लिए खड़ा है।

इंटरनेट सिर्फ यूआरएल (Uniform resource locator)

के माध्यम से संसाधनों की खपत के लिए नहीं किया गया था लेकिन यह है कि यह क्या हो गया है।

क्योंकि एचटीटीपी संसाधनों (जीईटी) और (HEAD) लाने के लिए मजबूत अर्थशास्त्र था। (POST) ने अर्थपूर्ण परिचालनों की संख्या के लिए कवरेज प्रदान किया जबकि (DELETE) अविश्वास में झुका हुआ था। HTTP में बहु-संसाधन संचालन जैसे कुछ अन्य गुणों की कमी थी।

संक्षेप में, यह प्रोटोकॉल पढ़ा गया था और प्रोटोकॉल नहीं लिख रहा था।

आप दौर के बारे में हालांकि FTP और तंत्र के कई संख्या में अपलोड करके अपने संसाधनों (यूआरएल) प्राप्त करने के लिए उपलब्ध बनाने के लिए जाना होगा। उसी तंत्र HTTP के माध्यम से संलेखन संसाधन के लिए समर्थन:

WebDAV इंटरनेट की याद आ रही कहानी प्रदान करने के लिए चाहिए था। इसने अपने अर्थशास्त्र को बढ़ाया, नए HTTP VERBS पेश किए।

यह भी तंत्र को न केवल पढ़ने, लिखने, संशोधित करने और एक संसाधन (URI) को हटा दें, लेकिन यह भी संसाधन के मेटा गुणों पर पूछताछ कर सकते हैं और इसे संशोधित की शुरुआत की। ऐसा नहीं है कि आप इसे पहले नहीं कर सके लेकिन यह बैक दरवाजा तंत्र के माध्यम से किया गया था।

तो आप देखते हैं, यह उन कुछ तंत्रों को लाया जो आप डेस्कटॉप पर इंटरनेट संसाधनों पर फ़ाइल संचालन पर अपेक्षा करते हैं।

MKCOL  ----- make collection ----- similar to make folder 
PROPGET ---- get properties (meta?) --- same as get info or extended attributes on mac 
PROPPATCH --- modify properties 
COPY  ---- cp 
MOVE  ---- mv 

मुझे आशा है कि, मैं HTTP करने के लिए विस्तार इंटरनेट लेखन का समर्थन करने के रूप में WebDAV के महान लक्ष्यों में से कुछ की स्थापना की है:

बाद उपमा से कुछ हैं। यकीन नहीं है कि अगर हमने इसे हासिल किया है।

अपने प्रश्न के लिए

आपका आवेदन एक ग्राहक है और क्या तंत्र के साथ क्या करना होगा उपलब्ध है - एफ़टीपी या दूसरे पक्ष पर WebDAV। यदि WebDAV बहुत अच्छा उपलब्ध है, तो आप इसका उपयोग कर सकते हैं। लेकिन अर्थशास्त्र में कुछ समय लगेगा। एफ़टीपी में सादगी में सीमित अर्थशास्त्र और उत्कृष्टता है। यदि आप पहले से ही इसका उपयोग कर रहे हैं, तो इसे न बदलें।

कौन सा तेजी से होता है

कि जवाब देने के लिए समान है, जो तेजी से HTTP या FTP है?

एक धूर्त टिप्पणी पर, अगर यह इस तरह के एक मुद्दा था हम को डाउनलोड होता नहीं किया गया है/HTTP के माध्यम से फ़ाइलों को अपलोड करने;)

+1

वेब के दर्शन की रूपरेखा और वेबडाव कैसे संबंधित है। धन्यवाद pyfunc। –

2

कि आप क्या करना चाहते हैं पर निर्भर करता है। उदाहरण के लिए, फ़ाइलों की सूची लाने के लिए एफ़टीपी पर ओवरहेड 7 बाइट्स (LIST -a) है, जबकि यह वेबडाव (PROPFIND + 207 मल्टी स्टेटस) के साथ 370 बाइट्स है।

कुछ फ़ाइल भेजने के लिए, वेबडैव की तुलना में एफ़टीपी पर ओवरहेड कम है, और इसी तरह।

आप भेजने/छोटे फ़ाइलों का एक बहुत लाने के लिए की जरूरत है, एफ़टीपी साबित होगा तेजी से (सही पाइपलाइनिंग के लिए कई कनेक्शन का उपयोग, और प्रति-फ़ाइल TCP कनेक्शन)। यदि आप बड़ी फाइलें भेज रहे/प्राप्त कर रहे हैं, तो यह दोनों तकनीक पर समान है, ओवरहेड नगण्य होगा।

कृपया देखें: http://www.philippheckel.com/files/syncany-heckel-thesis.pdf

+0

अच्छी जानकारी और संख्या –

+0

तो आप कह रहे हैं कि सभी मामलों में एफ़टीपी बेहतर है। –

+0

मैं कह रहा हूं कि यदि आप इरादा रखते हैं (केवल) फाइल भेजने और प्राप्त करने के लिए, तो एफ़टीपी वेबडाव से बेहतर है। हालांकि, वेबडाव में कई अन्य विशेषताएं हैं (उदाहरण के लिए लॉकिंग, साझा करना) एफ़टीपी में नहीं मिला। यदि आप बड़ी फाइलों से निपटते हैं, तो अतिरिक्त सुविधाओं की तुलना में वेबडैव का ओवरहेड नगण्य है। – xryl669

4

के बाद डीएवीHTTP से अधिक काम करता है, तो आप HTTP के सभी लाभ है कि एफ़टीपी प्रदान नहीं कर सकते हो।

उदाहरण के लिए:

मजबूत प्रमाणीकरण, एन्क्रिप्शन, प्रॉक्सी समर्थन, और कैशिंग

यह है कि आप SSH के माध्यम से इस में से कुछ प्राप्त कर सकते हैं सही है, लेकिन HTTP बुनियादी ढांचे और अधिक व्यापक रूप से SSH से तैनात है। इसके अलावा, एसएसएच में उपकरण, विकास पुस्तकालयों, और अनुप्रयोगों का व्यापक पूरक नहीं है जो HTTP करता है।

डीएवी स्थानान्तरण (अच्छी तरह से, HTTP स्थानान्तरण) एफ़टीपी से भी अधिक कुशल हैं। आप एक एकल टीसीपी कनेक्शन, के माध्यम से एकाधिक स्थानान्तरण पाइपलाइन कर सकते हैं जबकि एफ़टीपी को प्रत्येक फ़ाइल स्थानांतरित करने के लिए एक नया कनेक्शन चाहिए (प्लस नियंत्रण कनेक्शन)।

Reference

2

फ़ाइल संशोधन समय:

वहाँ फ़ाइल संशोधन समय के साथ एक अंतर कैसे एफ़टीपी और WebDAV सौदा हो रहा है।

ऐसा लगता है कि उस समय को संरक्षित करने के लिए ftp में 'कमांड' है (कई FTP क्लाइंट और सर्वर ऐसा करने का दावा करते हैं), जबकि वेबडाव, अगर मुझे सही याद है, तो फ़ाइल संशोधन दिनांक प्राप्त हो सकता है लेकिन इसे सेट नहीं किया जा सकता अपलोड करें।

ownCloud ग्राहक और कुछ propriatary WebDAV ग्राहकों एक समाधान है लगता है, लेकिन है कि उपयोग के आधार पर उनके सॉफ्टवेयर

में ही काम करता है, कि एफ़टीपी के पक्ष में एक stong तर्क है। मैं नहीं चाहता कि मेरी फाइलों में उनकी संशोधन तिथि == अपलोड की तारीख हो। बाद में डाउनलोड करने के बाद, मैं उस तारीख के बारे में बताने में सक्षम नहीं हूं जो मेरे पास फ़ाइल का संस्करण है।

संबंधित मुद्दे