Почему в FTP есть режим ASCII, распространенный в современных программах и реализациях FTP? Почему бы просто не всегда использовать двоичный файл независимо от данных?
Почему в FTP есть режим ASCII, распространенный в современных программах и реализациях FTP? Почему бы просто не всегда использовать двоичный файл независимо от данных?
Ответы:
Если вы сомневаетесь, прочитайте RFC :
Файл-структуры по умолчанию будет считать, если команда структурировать не используется, но как файл и записи структуры должны быть приняты для файлов «текст» (то есть, файлы с типом ASCII или EBCDIC) всеми реализациями FTP. Структура файла будет влиять как режим передачи файла (смотрите раздел по Режимы передачи) и интерпретации и хранения файла.
«Естественный» структура файла будет зависеть от того, какой хост хранит файл. Файл исходного кода обычно хранится на мэйнфрейме IBM в записях фиксированной длины, но на DEC TOPS-20 в виде потока символов, разделенных на строки, например, с помощью. Если передача файлов между такими разнородными сайтами, чтобы быть полезными, должна быть каким-то образом на один сайт, чтобы признать допущения друга о файле.
и т.д и т.д ... Короче говоря, это должно гарантировать, что текст представления в одной кодировке получили преобразуется правильно, когда передается хостов, используя различные кодировки.
Поскольку различные операционные системы (Windows, UNIX, VAX) используют разные методы окончание строки для простых текстовых файлов.
ОС Windows (DOS) использует пару CR / LF, UNIX использует только один из них. Режим ASCII преобразует CRLF пары и режим BIN не делает.
Рон
Я думаю , что это только потому , что иногда удобно. Еще в тот день , когда FTP был , как вы получили файлы из одной системы в другую, это большая экономия времени - вы не должны знать , что система была на другом конце, чтобы иметь читаемый текстовый файл.
Но да, в основном это просто неприятность сегодня. Просто испорченная машина для непосвященных!
Режим ASCII занял свое место еще в тот день, когда кодирование символов и EOL стало настоящей проблемой, но я бы хотел, чтобы клиенты ftp удалили или, возможно, просто скрыли эту опцию сегодня. Nowdays это в основном только EOL конвенции, которые получают перепутались между системами, но я нашел наиболее порядочные текстовые редакторы больше не волнует в любом случае. Поэтому для того, чтобы избежать повреждения бинарных файлов (или даже некоторые текстовые, основанные), я рекомендую только в двоичном режиме для всего.
Режим ASCII используется так, что программное обеспечение может автоматически изменять символы EOL в соответствующие значения для клиента / сервера в зависимости от того, если вы выгрузки / загрузки. Если вы загружаете к тому же типу системы, как вы используете, нет никакой разницы в этих режимах.
Причина этого режима заключается в том, что не все программное обеспечение во всех системах будет правильно обрабатывать EOL, которые не являются точным типом EOL (например, многие программы Windows будут правильно обрабатывать только «\ r \ n» и что-то блокировать). ужасно на «\ п»).