Re: UTF8 beim FTP-Protokoll



Lothar Kimmeringer wrote:
Carsten Petschel wrote:


Wenn der Server einem solchen Client gleich in UTF8 antwortet, dann liegt in meinen Augen undefiniertes Verhalten vor. Rein logisch.


IRL passiert aber genau das bei der Mehrheit der Server, die
UTF8 bei FEAT ausgeben. Da die Standardsprache allerdings
Englisch ist, faellt das normalerweise nicht bei den Meldungen
auf und man faellt erst auf die Nase, wenn es um das Lesen
von Dateilisten geht.

Jetzt hast Du es geschafft, mich neugierig zu machen.
Was genau machen denn die verschiedenen Implementierungen
der Server?

Der von Dir gelinkte Draft vom RFC ist doch ganz eindeutig
formuliert:

Sowohl Server als auch Client sprechen von Haus aus nur
ASCII (oder auch EBCDIC), wie im Original-FTP-Protokoll
vorgesehen.

FTP kennt bereits ein Kommando FEAT, daß der Client an
den Server schickt, um eine Liste der Implementierten
Features und Erweiterungen des Servers zu erhalten.
Wenn der Server die hier vorgeschlagene Erweiterung
unterstützt, tut er dies an dieser Stelle kund durch
Erwähnung des Features "UTF-8". Die Abfrage der Features
ändert gar nichts; insbesondere aktiviert sie nicht
das UTF8-Feature.

Wenn der Server UTF-8 nach diesem RFC unterstützt, erkennt
er ein neues Kommando vom Client, nämlich "OPTS UTF-8"
oder wahlweise auch "OPTS UTF-8 NLST". Wenn der Client
dieses Kommando abschickt antwortet der Server, ob die
Verbindung ab sofort erfolgreich auf UTF-8 umgestellt
ist oder nicht.

Der RFC für die UTF-8-Erweiterung empfiehlt es als
schönen Stil, wenn der Client erst mit FEAT abfragt,
ob der Server überhaupt UTF-8 unterstützt, bevor er
mittels OPTS UTF-8 versucht, auf UTF-8 umzuschalten.
Der Client darf es ausdrücklich aber auch einfach
so versuchen, weil der alte FTP-RFC bereits geregelt
hatte, wie der Server auf undefinierte und nicht
implementierte Kommandos reagieren soll.

Umschalten auf UTF-8 schaltet nicht die komplette
Kommunikation um. Es geht lediglich um die Kodierung
von Dateinamen! Bei allem anderen werden sowieso nur
7-Bit-Ascii-Zeichen übertragen, bei denen der Unterschied
zwischen Ascii und UTF-8 nicht erkennbar ist. Deshalb
ist es sinnfrei, darüber zu reden, ob die Antwort des
Servers auf "FEAT" oder auf "OPTS UTF-8" bereits in
UTF-8 kodiert ist oder noch in Ascii gesendet wird.

Wenn der Client bei OPTS UTF-8 auch noch das Flag NLST
angibt, werden auch Dateinamen, die über den Datenkanal
geschickt werden, in UTF-8 kodiert. Sonst bezieht sich
die Umstellung lediglich auf den Kontrollkanal. Hintergrund
ist, daß diese beiden Socket-Verbindungen mit
unterschiedlichen Rechnern und somit unterschiedlichen
FTP-Clients verbunden sein können.

Soviel dazu, wie ich den von Dir gelinkten RFC-Draft auf
<http://www3.ietf.org/proceedings/02nov/I-D/draft-ietf-ftpext-utf-8-option-00.txt>
verstanden habe.

Wo weichen die Server von diesem RFC ab, bzw. wo ist
der RFC unklar formuliert und läßt unterschiedliche
Verhaltensweisen des Servers zu?

Viele Grüße,
Kurt.
.



Relevant Pages

  • Re: Avoiding a "Bogus HELO" error
    ... Keep in mind that RFC 2821 deals with MSAs and MTAs. ... When I send a message using Comcast's SMTP server, ... > filters would trigger on the hostname of the sending client. ...
    (microsoft.public.outlook.general)
  • Re: Avoiding a "Bogus HELO" error
    ... Keep in mind that RFC 2821 deals with MSAs and MTAs. ... When I send a message using Comcast's SMTP server, ... > filters would trigger on the hostname of the sending client. ...
    (microsoft.public.outlook)
  • Re: TN3270 Question
    ... I took a look at RFC 2355, ... The server should not send anything to the host ... application on behalf of the client. ...
    (bit.listserv.ibm-main)
  • Re: TN3270 Question
    ... Surely RFC 2119 is an useful contribution to the establishment of standards ... important since the TN3270E client cannot know whether or not the TN3270E ... table in the "logoff" command and, almost follow, in the USS message 2. ... It's actually my whole case that the CS IP TELNET server logic SHOULD be ...
    (bit.listserv.ibm-main)
  • Re: Sonderzeichen werden aus Stream gefiltert
    ... müsste UTF-8 auch gehen.... ... vielleicht kommt schon/sonst was falsches vom Server? ... Ich würde (beim Client) mal zB einen 'BinaryReader' nehmen und ... dann _genau_ die Codes anschauen... ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)