Подтвердить что ты не робот

В какой ситуации я должен использовать ASCII для передачи файла по FTP? (Я не спрашиваю разницу между ascii xfer и bin xfer)

Я понимаю разницу между режимом ASCII и двоичным кодом, когда дело доходит до FTP, но я не понимаю, почему вообще существует необходимость в режиме ASCII? Является ли это просто наследием, которое использовалось для экономии времени, устраняя самый значительный бит, и поэтому общая скорость передачи увеличивается на 1/8? Или есть какое-то скрытое использование, о котором я не знаю?

Я столкнулся с множеством проблем, потому что забыл переключить режим в bin при передаче текста между различными ОС. Я не понимаю, почему "bin" - это не просто дефолт для всего, особенно сегодня гораздо более быстрые интернет-скорости.

Знаешь, Верн?

4b9b3361

Ответ 1

Режим ASCII существует, поэтому вы можете получить правильный ответ, когда вы загружаете текстовый файл в удаленную систему, не зная, что означают соглашения о завершении строки или условные обозначения для этой системы. Это было более важно, когда передача текстовых файлов чаще выполнялась через FTP, чем, скажем, по электронной почте.

Чтобы решить вашу практическую проблему: проверьте документацию для вашего FTP-клиента и сервера (ов), чтобы узнать, есть ли способ установить режим ASCII по умолчанию. Часто это так же просто, как какой-то "профиль", который при каждом подключении отправляет некоторые команды FTP.

Чтобы решить вашу философскую проблему: FTP - это 40-летний протокол, который имеет справедливую долю исторического багажа. Однажды вы будете очень рады, что какой-то протокол, от которого вы зависите, был стандартизирован давно, и вы все равно можете получить доступ к некоторым старым данным.

Ответ 2

Я, например, проголосую за удаление ascii-режима с ftp-серверов. Любой перевод EOL может выполняться приложениями, использующими файлы, и многие приложения сегодня понимают оба типа EOL. Как минимум, я бы хотел, чтобы сервер переключился на использование двоичного файла по умолчанию, и только при необходимости используйте ascii.

Ответ 3

Одним из сценариев практического использования режима ASCII является загрузка PHP или Perl или аналогичных сценариев с Windows на компьютер Unix. Использование двоичного режима потребует отдельного преобразования последовательностей окончания строки, в то время как преобразование режима ASCII выполняется "автоматически".

Обновление: есть еще один сценарий, с которым мы столкнулись - при передаче данных на/из мэйнфреймов, использующих кодирование EBCDIC, режим ASCII сообщает серверу о выполнении преобразования между кодировками.

Ответ 4

Вот практический пример проблемы, возникающей в результате использования двоичного FTP-соединения. В php есть два типа комментариев:

// a single line comment like this
/* a block comment like this */

Комментарий блока имеет начало и конец. Но однострочный комментарий заканчивается в конце строки.

Если вы загружаете php файл с комментариями одной строки с использованием двоичного соединения, php перестает работать, как только он попадает в комментарий одной строки. Он не распознает конец строки как конец комментария, поэтому он эффективно комментирует остальную часть вашего php script.

Если вы используете FTP в режиме ASCII, он правильно прочитает конец строки и запустит ваш php-код, как ожидалось.