Was ist der Sinn des ASCII-Modus bei FTP?

11460
zildjohn01

Warum gibt es bei FTP einen ASCII-Modus, der in heutigen Software- und FTP-Implementierungen vorherrscht? Warum nicht immer unabhängig von den Daten binär?

16

5 Antworten auf die Frage

23
Sinan Ünür

Lesen Sie im Zweifelsfall den RFC :

Die Dateistruktur ist die Standardeinstellung, die angenommen wird, wenn der Befehl STRUcture nicht verwendet wurde, aber sowohl Datei- als auch Datensatzstrukturen für "Text" -Dateien (dh Dateien mit TYPE ASCII oder EBCDIC) von allen FTP-Implementierungen akzeptiert werden müssen. Die Struktur einer Datei wirkt sich sowohl auf den Übertragungsmodus einer Datei (siehe Abschnitt Übertragungsmodi) als auch auf die Interpretation und Speicherung der Datei aus.

Die "natürliche" Struktur einer Datei hängt davon ab, auf welchem ​​Host die Datei gespeichert ist. Eine Quellcodedatei wird normalerweise auf einem IBM-Mainframe in Datensätzen mit fester Länge gespeichert, jedoch auf einem DEC TOPS-20 als ein Zeichenstrom, der in Zeilen unterteilt ist, beispielsweise durch. Wenn die Übertragung von Dateien zwischen solchen unterschiedlichen Sites nützlich sein soll, muss es für eine Site eine Möglichkeit geben, die Annahmen der anderen über die Datei zu erkennen.

etc etc ... Kurz gesagt, es wird sichergestellt, dass Textdarstellungen in einer Codierung ordnungsgemäß konvertiert werden, wenn sie mit einer anderen Codierung an Hosts übertragen werden.

4
user14456

Weil unterschiedliche Betriebssysteme (Windows, UNIX, VAX) unterschiedliche Zeilenende-Methoden für einfache Textdateien verwenden.

Windows (DOS) verwendet ein CR / LF-Paar, UNIX verwendet nur eines davon. Der ASCII-Modus konvertiert CRLF-Paare und der BIN-Modus nicht.

Ron

Dabei geht es nicht nur um die Zeilenendkodierungsunterschiede, die Sie erwähnen, sondern auch um die Differenzkodierung von Zeichen selbst, beispielsweise den Unterschied zwischen ASCII und EBCDIC. Die Antwort von @Sinan enthält die in RFC-959 dokumentierten Besonderheiten Tall Jeff vor 10 Jahren 4
1
David Markle

Ich denke es ist nur weil es manchmal bequem ist. Zurück in dem Tag, wenn FTP war, wie Sie Dateien von einem System zum nächsten kamen, war es eine große Zeitersparnis - Sie müssen nicht wissen, was das System am anderen Ende um eine lesbare Textdatei zu haben war.

Aber meistens ist es heute nur ein Ärgernis. Nur eine korrupte Maschine für Uneingeweihte!

0
Matthew Scharley

Der ASCII-Modus wird verwendet, damit die Software EOL-Zeichen automatisch in die richtigen Werte für den Client / Server ändern kann, je nachdem, ob Sie Hochladen / Herunterladen. Wenn Sie auf den gleichen Systemtyp hochladen, den Sie verwenden, unterscheiden sich diese Modi nicht.

Der Grund für diesen Modus liegt jedoch darin, dass nicht alle Programme auf allen Systemen EOLs korrekt behandeln, die nicht dem richtigen EOL-Typ entsprechen (z. B. wird eine Menge Windows-Software nur "\ r \ n" richtig behandeln und etwas blockieren schrecklich bei "\ n").

0
boomhauer

Der ASCII-Modus hatte seinen Platz an dem Tag, an dem die Zeichen- und EOL-Kodierung ein echtes Problem war. Ich möchte jedoch, dass FTP-Clients diese Option heute entfernen oder vielleicht nur ausblenden. Heutzutage sind es meist nur EOL-Konventionen, die zwischen den Systemen durcheinander geraten, aber ich habe festgestellt, dass die meisten anständigen Texteditoren sowieso nicht mehr interessiert sind. Um zu vermeiden, dass binäre Dateien (oder sogar einige Textdateien) beschädigt werden, empfehle ich, für alles nur den binären Modus zu verwenden.