एफ़टीपी में एएससीआईआई मोड क्यों है, जो आज के सॉफ्टवेयर और एफ़टीपी कार्यान्वयन में प्रचलित है? डेटा की परवाह किए बिना हमेशा बाइनरी का उपयोग क्यों न करें?
एफ़टीपी में एएससीआईआई मोड क्यों है, जो आज के सॉफ्टवेयर और एफ़टीपी कार्यान्वयन में प्रचलित है? डेटा की परवाह किए बिना हमेशा बाइनरी का उपयोग क्यों न करें?
जवाबों:
जब संदेह हो, तो RFC पढ़ें :
फ़ाइल-संरचना को डिफ़ॉल्ट माना जाता है यदि STRUcture कमांड का उपयोग नहीं किया गया है, लेकिन सभी FTP कार्यान्वयनों द्वारा "पाठ" फ़ाइलों (यानी, TYPE ASCII या EBCDIC के साथ फ़ाइलें) के लिए फ़ाइल और रिकॉर्ड संरचना दोनों को स्वीकार किया जाना चाहिए। किसी फ़ाइल की संरचना फ़ाइल के स्थानांतरण मोड (ट्रांसमिशन मोड पर अनुभाग देखें) और फ़ाइल की व्याख्या और भंडारण दोनों को प्रभावित करेगी।
फ़ाइल की "प्राकृतिक" संरचना इस बात पर निर्भर करेगी कि होस्ट किस फ़ाइल को संग्रहीत करता है। एक स्रोत-कोड फ़ाइल को आमतौर पर आईबीएम मेनफ्रेम पर निश्चित लंबाई के रिकॉर्ड में संग्रहीत किया जाएगा, लेकिन उदाहरण के लिए, लाइनों में विभाजित वर्णों की एक धारा के रूप में DEC TOPS-20 पर। यदि ऐसी असमान साइटों के बीच फ़ाइलों का स्थानांतरण उपयोगी हो, तो फ़ाइल के बारे में दूसरे की मान्यताओं को पहचानने के लिए एक साइट के लिए कोई रास्ता होना चाहिए।
आदि ... संक्षेप में, यह सुनिश्चित करना है कि एक एन्कोडिंग में पाठ का प्रतिनिधित्व एक अलग एन्कोडिंग का उपयोग करके मेजबानों को हस्तांतरित होने पर ठीक से परिवर्तित हो गया।
क्योंकि विभिन्न ऑपरेटिंग सिस्टम (विंडोज, यूनिक्स, वैक्स) सरल पाठ फ़ाइलों के लिए अलग-अलग लाइन समाप्त करने के तरीकों का उपयोग करते हैं।
Windows (DOS) CR / LF जोड़ी का उपयोग करता है, UNIX उनमें से केवल एक का उपयोग करता है। ASCII मोड CRLF जोड़े और BIN मोड को परिवर्तित नहीं करता है।
रॉन
मुझे लगता है कि यह सिर्फ इसलिए है क्योंकि यह कभी-कभी सुविधाजनक होता है। दिन में जब एफ़टीपी था, तो आपको एक सिस्टम से दूसरी फाइल कैसे मिली, यह एक बड़ा समय था - आपको यह जानने की ज़रूरत नहीं थी कि एक पठनीय टेक्स्ट फ़ाइल के लिए सिस्टम दूसरे छोर पर क्या था।
लेकिन हाँ, ज्यादातर आज यह सिर्फ एक उपद्रव है। बस एक भ्रष्ट-ओ-मैटिक मशीन के लिए uninitiated!
ASCII मोड दिन में वापस आ गया था जब चरित्र और ईओएल एन्कोडिंग एक वास्तविक समस्या थी, लेकिन मैं FTP क्लाइंट को हटाने या शायद आज इस विकल्प को छिपाना देखना चाहूंगा। आजकल यह केवल ईओएल सम्मेलनों में से एक है जो सिस्टम के बीच गड़बड़ हो जाता है, लेकिन मैंने पाया है कि सबसे सभ्य टेक्स्ट एडिटर अब वैसे भी परवाह नहीं करते हैं। तो द्विआधारी फ़ाइलों (या यहां तक कि कुछ पाठ आधारित) को भ्रष्ट करने से बचने के लिए, मैं बस सब कुछ के लिए बाइनरी मोड का उपयोग करने की सलाह देता हूं।
ASCII मोड का उपयोग किया जाता है ताकि सॉफ्टवेयर स्वचालित रूप से EOL वर्णों को क्लाइंट / सर्वर के लिए उचित मानों में बदल सके, यदि आप अपलोड / डाउनलोड कर रहे हैं तो इस पर निर्भर करता है। यदि आप उसी प्रकार के सिस्टम पर अपलोड कर रहे हैं जैसा आप उपयोग कर रहे हैं, तो इन मोड में कोई अंतर नहीं है।
हालांकि इस मोड का कारण यह है कि सभी सिस्टमों पर सभी सॉफ़्टवेयर सही ढंग से ईओएल को नहीं संभालेंगे, जो कि ईओएल का सटीक उचित प्रकार नहीं हैं (उदाहरण के लिए, विंडोज़ सॉफ्टवेयर का एक बहुत ही "\ r \ n" ठीक से संभाल लेगा और कुछ गंजा कर देगा "\ n" पर भयानक)।