Was bringt der ASCII-Modus in FTP?


17

Warum gibt es in FTP einen ASCII-Modus, der in heutigen Software- und FTP-Implementierungen weit verbreitet ist? Warum nicht einfach unabhängig von den Daten immer binär verwenden?

Antworten:


24

Lesen Sie im Zweifelsfall den RFC :

Die Dateistruktur ist die Standardeinstellung, die angenommen wird, wenn der Befehl STRUcture nicht verwendet wurde, aber für "Text" -Dateien (dh Dateien mit TYPE ASCII oder EBCDIC) von allen FTP-Implementierungen sowohl Datei- als auch Datensatzstrukturen 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 fester Länge, aber auf einem DEC TOPS-20 als Zeichenstrom gespeichert, der in Zeilen unterteilt ist, z. B. 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 bezüglich der Datei zu erkennen.

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


Im Zweifelsfall: Durchsuchen Sie Google und finden Sie die Antwort auf StackExchange.
ke4ukz

4

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

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

Ron


4
Sie erwähnen nicht nur die Unterschiede bei der Kodierung der Zeilenenden, sondern auch die Unterschiede bei der Kodierung der Zeichen selbst, z. B. den Unterschied zwischen ASCII und EBCDIC. Die Antwort von @Sinan enthält die in RFC-959
Tall Jeff,

1

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 ja, meistens ist es heute nur ein Ärgernis. Nur eine korrupte Maschine für die Uneingeweihten!


1

Der ASCII-Modus hatte seinen Platz in der Zeit, als die Zeichen- und EOL-Codierung ein echtes Problem darstellte, aber ich würde gerne sehen, dass FTP-Clients diese Option heute entfernen oder vielleicht einfach nur verbergen. Heutzutage sind es meistens nur EOL-Konventionen, die zwischen den Systemen durcheinander geraten, aber ich habe festgestellt, dass es die meisten anständigen Texteditoren sowieso nicht mehr interessieren. Um zu vermeiden, dass Binärdateien (oder sogar einige textbasierte) beschädigt werden, empfehle ich, für alles nur den Binärmodus zu verwenden.


-1

Der ASCII-Modus wird verwendet, damit die Software die EOL-Zeichen je nach Upload / Download automatisch auf die richtigen Werte für den Client / Server ändern kann. Wenn Sie auf denselben Systemtyp hochladen, den Sie verwenden, gibt es in diesen Modi keinen Unterschied.

Der Grund für diesen Modus ist jedoch, dass nicht jede Software auf allen Systemen EOLs korrekt handhabt, die nicht dem richtigen EOL-Typ entsprechen (zum Beispiel werden viele Windows-Programme nur "\ r \ n" korrekt handhaben und etwas blockieren schrecklich auf "\ n").


"In diesen Modi gibt es keinen Unterschied." - Das ist nicht wahr. Das Senden einer Binärdatei im ASCII-Modus kann diese möglicherweise beschädigen. Schlecht.
Beefster
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.