Який сенс режиму ASCII у FTP?


17

Чому в FTP існує режим ASCII, який є розповсюдженим у сучасній реалізації програмного забезпечення та FTP? Чому б не завжди використовувати двійкові незалежно від даних?

Відповіді:


24

Якщо ви сумніваєтесь, прочитайте RFC :

Файлова структура - це за замовчуванням, яке слід вважати, якщо команда STRUcture не використовується, але всі файли та структури записів повинні бути прийняті для "текстових" файлів (тобто файлів з TYPE ASCII або EBCDIC) усіма реалізаціями FTP. Структура файлу впливатиме як на режим передачі файлу (див. Розділ про режими передачі), так і на інтерпретацію та зберігання файлу.

"Природна" структура файлу залежатиме від того, який хост зберігає файл. Файл вихідного коду зазвичай зберігається в IBM Mainframe в записах фіксованої довжини, але в DEC TOPS-20 як потік символів, розділений на лінії, наприклад, by. Якщо передача файлів між такими розрізненими сайтами стане корисною, повинен бути певний спосіб розпізнати припущення іншого про файл.

тощо. Коротше кажучи, це забезпечити, щоб текстові подання в одному кодуванні були належним чином перетворені при перенесенні в хости, використовуючи інше кодування.


Якщо ви сумніваєтесь: шукайте Google і знайдіть відповідь на StackExchange.
ke4ukz

4

Оскільки різні операційні системи (Windows, UNIX, VAX) використовують різні методи закінчення рядків для простих текстових файлів.

Windows (DOS) використовує пару CR / LF, UNIX використовує лише одну з них. Режим ASCII перетворює пари CRLF, а режим BIN - ні.

Рон


4
Це більше, ніж просто рядок, що закінчує кодування відмінностей, які ви згадуєте, але це також про відмінності, що кодують самі символи, такі як різниця між ASCII та EBCDIC. Відповідь сайтів @Sinan про специфіку, задокументовану в RFC-959
Tall Jeff

1

Я думаю, що це просто тому, що іноді це зручно. Ще в той день, коли FTP - це те, як ви отримували файли з однієї системи в іншу, це був великий часовий простір - вам не потрібно було знати, що система на іншому кінці, щоб мати читабельний текстовий файл.

Але так, сьогодні це просто неприємність. Просто корумпована-о-матична машина для непосвячених!


1

Режим ASCII отримав своє місце ще в той день, коли кодування символів та EOL було справжньою проблемою, але я хотів би побачити FTP-клієнти видалити або, можливо, просто сьогодні приховати цю опцію. Сьогодні це здебільшого лише конвенції EOL, які заплутуються між системами, але я знайшов, що найдостойніші текстові редактори все одно не хвилюються. Тож, щоб уникнути пошкодження бінарних файлів (або навіть деяких текстових), я рекомендую просто використовувати двійковий режим для всього.


-1

Режим ASCII використовується таким чином, що програмне забезпечення може автоматично змінювати символи EOL на відповідні значення для клієнта / сервера залежно від того, завантажуєте чи завантажуєте ви. Якщо ви завантажуєте в той самий тип системи, який ви використовуєте, різниці в цих режимах немає.

Причина цього режиму полягає в тому, що не все програмне забезпечення у всіх системах буде правильно обробляти EOL, які не є правильним типом EOL (наприклад, багато програмного забезпечення для Windows буде правильно обробляти "\ r \ n" належним чином і щось робитиме жахливо на "\ n").


"немає різниці в цих режимах." - Це не правда. Надсилання бінарного файлу в режимі ascii, ймовірно, може пошкодити його. Погано.
Beefster
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.