โหมด ASCII ใน FTP คืออะไร?


17

เหตุใดจึงมีโหมด ASCII ใน FTP ซึ่งแพร่หลายในซอฟต์แวร์และการใช้งาน FTP ในปัจจุบัน? ทำไมไม่ใช้เลขฐานสองโดยไม่คำนึงถึงข้อมูลเสมอ

คำตอบ:


24

หากมีข้อสงสัยให้อ่านRFC :

โครงสร้างไฟล์เป็นค่าเริ่มต้นที่จะถือว่าถ้าคำสั่ง STRUcture ไม่ได้ใช้ แต่โครงสร้างไฟล์และเร็กคอร์ดต้องยอมรับสำหรับไฟล์ "text" (เช่นไฟล์ที่มี TYPE ASCII หรือ EBCDIC) โดยการใช้งาน FTP ทั้งหมด โครงสร้างของไฟล์จะส่งผลต่อทั้งโหมดการถ่ายโอนของไฟล์ (ดูหัวข้อในโหมดการส่งข้อมูล) และการตีความและการจัดเก็บไฟล์

โครงสร้าง "ธรรมชาติ" ของไฟล์จะขึ้นอยู่กับโฮสต์ที่จัดเก็บไฟล์ โดยทั่วไปไฟล์ซอร์สโค้ดจะถูกเก็บไว้ใน IBM Mainframe ในเร็กคอร์ดความยาวคงที่ แต่ใน DEC TOPS-20 เป็นสตรีมของอักขระที่แบ่งพาร์ติชันเป็นบรรทัดตัวอย่างเช่น หากการถ่ายโอนไฟล์ระหว่างไซต์ที่แตกต่างกันนั้นมีประโยชน์ต้องมีวิธีใดวิธีหนึ่งในการรับรู้ข้อสันนิษฐานของอีกฝ่ายเกี่ยวกับไฟล์

ฯลฯ ฯลฯ ... กล่าวโดยย่อคือเพื่อให้แน่ใจว่าการแสดงข้อความในการเข้ารหัสหนึ่งครั้งได้รับการแปลงอย่างถูกต้องเมื่อถ่ายโอนไปยังโฮสต์โดยใช้การเข้ารหัสที่แตกต่างกัน


เมื่อมีข้อสงสัย: ค้นหา Google และค้นหาคำตอบบน StackExchange
ke4ukz

4

เนื่องจากระบบปฏิบัติการที่แตกต่างกัน (Windows, UNIX, VAX) ใช้วิธีการสิ้นสุดบรรทัดที่แตกต่างกันสำหรับไฟล์ข้อความธรรมดา

Windows (DOS) ใช้คู่ CR / LF, UNIX ใช้เพียงหนึ่งคู่เท่านั้น โหมด ASCII แปลงคู่ CRLF และโหมด BIN ไม่ได้

รอน


4
มันเป็นมากกว่าความแตกต่างของการเข้ารหัสที่ลงท้ายด้วยบรรทัดที่คุณพูดถึง แต่มันก็เกี่ยวกับความแตกต่างของการเข้ารหัสอักขระเช่นความแตกต่างระหว่าง ASCII และ EBCDIC คำตอบโดยไซต์ @Sanan ข้อมูลเฉพาะที่ระบุไว้ใน RFC-959
Tall Jeff

1

ฉันคิดว่ามันเป็นเพราะบางครั้งมันสะดวก ย้อนกลับไปในวันที่ FTP เป็นวิธีที่คุณได้รับไฟล์จากระบบหนึ่งไปสู่อีกระบบหนึ่งมันเป็นเครื่องประหยัดเวลาขนาดใหญ่ - คุณไม่จำเป็นต้องรู้ว่าระบบอยู่ที่ปลายอีกด้านหนึ่งเพื่อให้สามารถอ่านไฟล์ข้อความได้

แต่ใช่แล้วส่วนใหญ่มันเป็นเพียงความรำคาญในวันนี้ เพียงแค่เป็นเครื่องที่ไม่มีโอเคติคอลสำหรับมือใหม่!


1

โหมด ASCII มีที่มาในวันที่การเข้ารหัสอักขระและ EOL เป็นปัญหาจริง แต่ฉันต้องการเห็นลูกค้า ftp ลบหรืออาจซ่อนตัวเลือกนี้ในวันนี้ ทุกวันนี้มันเป็นแค่การประชุม EOL ที่ยุ่งเหยิงระหว่างระบบ แต่ฉันพบว่าตัวแก้ไขข้อความที่เหมาะสมส่วนใหญ่ไม่สนใจอีกต่อไป ดังนั้นเพื่อหลีกเลี่ยงการทำให้ไฟล์ไบนารีเสียหาย (หรือแม้แต่ไฟล์ที่มีข้อความ) ฉันแนะนำให้ใช้โหมดไบนารีสำหรับทุกสิ่ง


-1

มีการใช้โหมด ASCII เพื่อให้ซอฟต์แวร์สามารถเปลี่ยนอักขระ EOL โดยอัตโนมัติเป็นค่าที่เหมาะสมสำหรับไคลเอนต์ / เซิร์ฟเวอร์ขึ้นอยู่กับว่าคุณกำลังอัปโหลด / ดาวน์โหลด หากคุณกำลังอัปโหลดไปยังระบบประเภทเดียวกันกับที่คุณใช้อยู่โหมดเหล่านี้จะไม่แตกต่างกัน

เหตุผลสำหรับโหมดนี้แม้ว่าจะเป็นเพราะไม่ใช่ซอฟต์แวร์ทั้งหมดในระบบทั้งหมดจะจัดการ EOL ได้อย่างถูกต้องซึ่งไม่ใช่ประเภทที่เหมาะสมของ EOL (ตัวอย่างเช่นซอฟต์แวร์ Windows จำนวนมากจะจัดการเฉพาะ "\ r \ n" อย่างถูกต้องและจะรบกวนบางสิ่ง น่ากลัวใน "\ n")


"ไม่มีความแตกต่างในโหมดเหล่านี้" - นี่ไม่เป็นความจริง. การส่งไฟล์ไบนารีในโหมด ascii อาจทำให้ไฟล์เสียหาย ไม่ดี.
Beefster
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.