Dateiübertragungsprotokoll - File Transfer Protocol

Dateiübertragungsprotokoll
Kommunikationsprotokoll
Zweck Datei Übertragung
Entwickler Abhay Bhushan für RFC 959
Eingeführt 16. April 1971 ; vor 50 Jahren ( 1971-04-16 )
OSI-Schicht Anwendungsschicht
Häfen) 21 für Steuerung, 20 für Datenübertragung
RFC(s) RFC 959

Das File Transfer Protocol ( FTP ) ist ein Standard- Kommunikationsprotokoll, das für die Übertragung von Computerdateien von einem Server zu einem Client in einem Computernetzwerk verwendet wird . FTP baut auf einer Client-Server-Modellarchitektur auf, die separate Steuer- und Datenverbindungen zwischen Client und Server verwendet. FTP-Benutzer können sich mit einem Klartext- Anmeldeprotokoll authentifizieren , normalerweise in Form eines Benutzernamens und eines Kennworts, können sich jedoch auch anonym verbinden, wenn der Server dafür konfiguriert ist. Für eine sichere Übertragung, die den Benutzernamen und das Passwort schützt und den Inhalt verschlüsselt, wird FTP oft mit SSL/TLS ( FTPS ) gesichert oder durch SSH File Transfer Protocol (SFTP) ersetzt.

Die ersten FTP - Client - Anwendungen waren Kommandozeilen - Programme entwickelt , bevor Betriebssysteme hatten grafisches Benutzeroberflächen und sind nach wie vor mit den meisten ausgeliefert Windows - , Unix und Linux - Betriebssystemen. Seitdem wurden viele FTP-Clients und Automatisierungsprogramme für Desktops , Server, mobile Geräte und Hardware entwickelt, und FTP wurde in Produktivitätsanwendungen wie HTML-Editoren integriert .

Im Januar 2021 wurde die Unterstützung für das FTP-Protokoll in Google Chrome 88 deaktiviert und in Firefox 88.0 deaktiviert. Im Juli 2021 stellte Firefox 90 FTP vollständig ein. Im Oktober 2021 soll Google Chrome 95 die FTP-Unterstützung vollständig einstellen.

Geschichte der FTP-Server

Die ursprüngliche Spezifikation für das File Transfer Protocol wurde von Abhay Bhushan geschrieben und am 16. April 1971 als RFC  114 veröffentlicht . Bis 1980 lief FTP auf NCP , dem Vorgänger von TCP/IP . Das Protokoll wurde später durch eine TCP/IP-Version ersetzt, RFC  765 (Juni 1980) und RFC  959 (Oktober 1985), die aktuelle Spezifikation. Mehrere vorgeschlagene Standards ändern RFC  959 , zum Beispiel RFC  1579 (Februar 1994) ermöglicht Firewall-freundliches FTP (passiver Modus), RFC  2228 (Juni 1997) schlägt Sicherheitserweiterungen vor, RFC  2428 (September 1998) fügt Unterstützung für IPv6 hinzu und definiert einen neuen Typ des passiven Modus.

Protokollübersicht

Kommunikation und Datenübertragung

Illustration zum Starten einer passiven Verbindung über Port 21

FTP kann im aktiven oder passiven Modus ausgeführt werden, der bestimmt, wie die Datenverbindung hergestellt wird. (Dieser Sinn für "Modus" unterscheidet sich von dem des MODE-Befehls im FTP-Protokoll und entspricht stattdessen den Befehlen PORT/PASV/EPSV/etc.) In beiden Fällen erstellt der Client eine TCP-Steuerungsverbindung aus einer zufälligen, normalerweise ein nicht privilegierter , Port N zum FTP-Server-Befehlsport 21.

  • Im aktiven Modus lauscht der Client auf eingehende Datenverbindungen vom Server auf Port M. Er sendet den FTP-Befehl PORT M, um dem Server mitzuteilen, auf welchem ​​Port er lauscht. Der Server initiiert dann einen Datenkanal zum Client von seinem Port 20, dem FTP-Server-Datenport.
  • In Situationen, in denen sich der Client hinter einer Firewall befindet und eingehende TCP-Verbindungen nicht annehmen kann , kann der passive Modus verwendet werden. In diesem Modus sendet der Client über die Kontrollverbindung ein PASV-Kommando an den Server und erhält dann vom Server eine Server-IP-Adresse und eine Server-Port-Nummer, mit der der Client dann eine Datenverbindung von einem beliebigen Client-Port zum Server-IP-Adresse und Server-Portnummer empfangen.

Beide Modi wurden im September 1998 aktualisiert, um IPv6 zu unterstützen . Zu dieser Zeit wurden weitere Änderungen am passiven Modus vorgenommen, die auf den erweiterten passiven Modus aktualisiert wurden .

Der Server antwortet über die Steuerverbindung mit dreistelligen Statuscodes in ASCII mit einer optionalen Textnachricht. "200" (oder "200 OK") bedeutet beispielsweise, dass der letzte Befehl erfolgreich war. Die Zahlen stellen den Code für die Antwort dar und der optionale Text stellt eine menschenlesbare Erklärung oder Aufforderung dar (zB <Benötige Konto zum Speichern der Datei>). Eine laufende Übertragung von Dateidaten über die Datenverbindung kann durch eine über die Steuerverbindung gesendete Interrupt-Nachricht abgebrochen werden.

FTP benötigt zwei Ports (einen zum Senden und einen zum Empfangen), da es ursprünglich für den Betrieb mit dem Network Control Program (NCP) entwickelt wurde, einem Simplex-Protokoll , das zwei Portadressen verwendet , um zwei Verbindungen für die bidirektionale Kommunikation herzustellen. Eine ungerade und eine gerade Port reserviert wurden für jede Anwendungsschicht - Anwendung oder das Protokoll. Die Standardisierung von TCP und UDP reduzierte die Notwendigkeit der Verwendung von zwei Simplex-Ports für jede Anwendung auf einen Duplex-Port, aber das FTP-Protokoll wurde nie geändert, um nur einen Port zu verwenden, und verwendet weiterhin zwei Ports aus Gründen der Abwärtskompatibilität.

NAT- und Firewall-Traversal

FTP überträgt normalerweise Daten, indem der Server eine Verbindung zum Client herstellt, nachdem der PORT-Befehl vom Client gesendet wurde. Dies ist sowohl für NATs als auch für Firewalls problematisch , die keine Verbindungen aus dem Internet zu internen Hosts zulassen. Bei NATs besteht eine zusätzliche Komplikation darin, dass sich die Darstellung der IP-Adressen und der Portnummer im PORT-Befehl auf die IP-Adresse und den Port des internen Hosts bezieht und nicht auf die öffentliche IP-Adresse und den Port des NAT.

Es gibt zwei Ansätze, dieses Problem zu lösen. Zum einen verwenden der FTP-Client und der FTP-Server den PASV-Befehl, der bewirkt, dass die Datenverbindung vom FTP-Client zum Server hergestellt wird. Dies wird häufig von modernen FTP-Clients verwendet. Ein anderer Ansatz besteht darin, dass die NAT die Werte des PORT-Befehls ändert, indem sie zu diesem Zweck ein Gateway auf Anwendungsebene verwendet.

Datentypen

Beim Übertragen von Daten über das Netzwerk werden vier Datentypen definiert:

  • ASCII (TYP A): Wird für Text verwendet. Daten werden, falls erforderlich, vor der Übertragung von der Zeichendarstellung des sendenden Hosts in "8-Bit-ASCII" und (wieder, falls erforderlich) in die Zeichendarstellung des empfangenden Hosts umgewandelt. Daher ist dieser Modus für Dateien ungeeignet, die andere Daten als Klartext enthalten.
  • Bild (Typ I, die gemeinhin als Binary - Modus): Der sendende Gerät sendet jede Datei Byte für Byte, und der Empfänger speichert den Bytestrom , wie es erhält es. (Für alle Implementierungen von FTP wurde die Unterstützung des Bildmodus empfohlen).
  • EBCDIC (TYPE E): Wird für Klartext zwischen Hosts mit dem EBCDIC-Zeichensatz verwendet.
  • Lokal (TYP L n ): Entwickelt, um die Dateiübertragung zwischen Maschinen zu unterstützen, die keine 8-Bit-Bytes verwenden, zB 36-Bit-Systeme wie DEC PDP-10s . Beispielsweise würde "TYPE L 9" verwendet, um Daten in 9-Bit-Bytes zu übertragen, oder "TYPE L 36", um 36-Bit-Wörter zu übertragen. Die meisten modernen FTP-Clients/Server unterstützen nur L 8, was I entspricht.

Ein abgelaufener Internet Draft definierte einen TYPE U für die Übertragung von Unicode- Textdateien mit UTF-8 ; Obwohl der Entwurf nie ein RFC wurde, wurde er von mehreren FTP-Clients/Servern implementiert.

Beachten Sie, dass diese Datentypen allgemein als "Modi" bezeichnet werden, obwohl dieses Wort mehrdeutig auch verwendet wird, um sich auf den Aktiv-Passiv-Kommunikationsmodus (siehe oben) und die Modi zu beziehen, die durch den FTP-Protokollbefehl MODE (siehe unten) festgelegt werden.

Für Textdateien (TYP A und TYP E) stehen drei verschiedene Formatkontrolloptionen zur Verfügung, um zu steuern, wie die Datei gedruckt wird:

  • Non-Print (TYPE AN und TYPE EN) – die Datei enthält keine für einen Drucker bestimmten Wagensteuerzeichen
  • Telnet (TYPE AT und TYPE ET) – die Datei enthält Telnet (oder anders ausgedrückt ASCII C0) Wagensteuerzeichen (CR, LF usw.)
  • ASA (TYPE AA und TYPE EA) – die Datei enthält ASA-Wagensteuerzeichen

Diese Formate waren hauptsächlich für Zeilendrucker relevant ; Die meisten modernen FTP-Clients/Server unterstützen nur die Standardformatsteuerung von N.

Dateistrukturen

Die Dateiorganisation wird mit dem STRU-Befehl angegeben. Die folgenden Dateistrukturen sind in Abschnitt 3.1.1 von RFC959 definiert:

  • F- oder FILE-Struktur (stromorientiert). Dateien werden als eine beliebige Folge von Bytes, Zeichen oder Wörtern betrachtet. Dies ist die übliche Dateistruktur auf Unix-Systemen und anderen Systemen wie CP/M, MS-DOS und Microsoft Windows. (Abschnitt 3.1.1.1)
  • R- oder RECORD-Struktur (satzorientiert). Dateien werden als in Datensätze unterteilt betrachtet, die eine feste oder variable Länge haben können. Diese Dateiorganisation ist auf Mainframe- und Midrange-Systemen wie MVS, VM/CMS, OS/400 und VMS üblich, die datensatzorientierte Dateisysteme unterstützen .
  • P- oder PAGE-Struktur (seitenorientiert). Dateien sind in Seiten unterteilt, die entweder Daten oder Metadaten enthalten können; jede Seite kann auch einen Header haben, der verschiedene Attribute angibt. Diese Dateistruktur wurde speziell für TENEX- Systeme entwickelt und wird im Allgemeinen auf anderen Plattformen nicht unterstützt. RFC1123 Abschnitt 4.1.2.3 empfiehlt, diese Struktur nicht zu implementieren.

Die meisten modernen FTP-Clients und -Server unterstützen nur STRU F. STRU R wird immer noch in Großrechner- und Minicomputer-Dateiübertragungsanwendungen verwendet.

Datenübertragungsmodi

Die Datenübertragung kann in einem von drei Modi erfolgen:

  • Stream-Modus (MODE S): Daten werden als kontinuierlicher Stream gesendet, wodurch FTP von jeglicher Verarbeitung befreit wird. Stattdessen wird die gesamte Verarbeitung TCP überlassen . Es ist kein End-of-File-Indikator erforderlich, es sei denn, die Daten sind in Datensätze unterteilt .
  • Blockmodus (MODE B): In erster Linie für die Übertragung von datensatzorientierten Dateien (STRU R) konzipiert, kann jedoch auch für die Übertragung von stromorientierten (STRU F) Textdateien verwendet werden. FTP legt jeden Datensatz (oder jede Zeile) von Daten in mehrere Blöcke (Blockheader, Byteanzahl und Datenfeld) und leitet sie dann an TCP weiter.
  • Komprimierter Modus (MODE C): Erweitert MODE B um Datenkomprimierung unter Verwendung von Lauflängencodierung .

Die meisten modernen FTP-Clients und -Server implementieren weder MODE B noch MODE C; Ausnahmen bilden FTP-Clients und -Server für Großrechner- und Minicomputer-Betriebssysteme.

Einige FTP-Software implementiert auch einen DEFLATE- basierten komprimierten Modus, der manchmal nach dem Befehl, der ihn aktiviert , "Modus Z" genannt wird. Dieser Modus wurde in einem Internet Draft beschrieben , aber nicht standardisiert.

GridFTP definiert zusätzliche Modi, MODE E und MODE X, als Erweiterungen von MODE B.

Zusätzliche Befehle

Neuere FTP-Implementierungen unterstützen den Befehl Modify Fact: Modification Time (MFMT), der es einem Client ermöglicht, dieses Dateiattribut aus der Ferne anzupassen , wodurch die Beibehaltung dieses Attributs beim Hochladen von Dateien ermöglicht wird.

Um einen Zeitstempel einer entfernten Datei abzurufen, gibt es den MDTM- Befehl. Einige Server (und Clients) unterstützen eine nicht standardmäßige Syntax des MDTM- Befehls mit zwei Argumenten, die genauso funktioniert wie MFMT

Anmeldung

Bei der FTP-Anmeldung wird ein normales Benutzernamen- und Kennwortschema verwendet, um den Zugriff zu gewähren. Der Benutzername wird mit dem USER-Befehl an den Server gesendet und das Passwort wird mit dem PASS-Befehl gesendet. Diese Sequenz ist "on the wire" unverschlüsselt und kann daher für einen Netzwerk- Sniffing-Angriff anfällig sein . Wenn die vom Client bereitgestellten Informationen vom Server akzeptiert werden, sendet der Server eine Begrüßung an den Client und die Sitzung beginnt. Wenn der Server dies unterstützt, können sich Benutzer anmelden, ohne Anmeldeinformationen anzugeben, aber derselbe Server kann für solche Sitzungen nur eingeschränkten Zugriff autorisieren.

Anonymes FTP

Ein Host, der einen FTP-Dienst bereitstellt, kann anonymen FTP-Zugriff bereitstellen . Benutzer melden sich normalerweise mit einem 'anonymen' Konto (bei einigen FTP-Servern wird in Kleinbuchstaben und Groß-/Kleinschreibung beachtet) beim Dienst an, wenn sie zur Eingabe des Benutzernamens aufgefordert werden. Obwohl Benutzer häufig aufgefordert werden, ihre E-Mail- Adresse anstelle eines Passworts zu senden , wird keine Überprüfung der bereitgestellten Daten durchgeführt. Viele FTP-Hosts, deren Zweck darin besteht, Software-Updates bereitzustellen, erlauben anonyme Anmeldungen.

Unterschiede zu HTTP

HTTP behebt im Wesentlichen die Fehler in FTP, die die Verwendung für viele kleine kurzlebige Übertragungen, wie sie für Webseiten typisch sind, unpraktisch machten.

FTP hat eine Stateful-Control-Verbindung, die ein aktuelles Arbeitsverzeichnis und andere Flags verwaltet, und jede Übertragung erfordert eine sekundäre Verbindung, über die die Daten übertragen werden. Im "passiven" Modus ist diese sekundäre Verbindung vom Client zum Server, während diese Verbindung im standardmäßigen "aktiven" Modus vom Server zum Client erfolgt. Dieser scheinbare Rollentausch im aktiven Modus und zufällige Portnummern für alle Übertragungen sind der Grund, warum Firewalls und NAT-Gateways mit FTP so schwer zu kämpfen haben. HTTP ist zustandslos und multiplext Kontrolle und Daten über eine einzige Verbindung vom Client zum Server über bekannte Portnummern, die trivial NAT-Gateways passieren und für Firewalls einfach zu verwalten sind.

Das Einrichten einer FTP-Steuerungsverbindung ist aufgrund der Round-Trip-Verzögerungen beim Senden aller erforderlichen Befehle und Warten auf Antworten ziemlich langsam -Stellen Sie die Sitzung jedes Mal neu her. Im Gegensatz dazu hat HTTP die Verbindung ursprünglich nach jeder Übertragung abgebrochen, weil dies so billig war. Während HTTP in der Folge die Fähigkeit erlangt hat, die TCP-Verbindung für mehrere Übertragungen wiederzuverwenden, besteht das konzeptionelle Modell immer noch aus unabhängigen Anfragen statt einer Sitzung.

Wenn FTP über die Datenverbindung überträgt, ist die Steuerverbindung im Leerlauf. Wenn die Übertragung zu lange dauert, kann die Firewall oder das NAT entscheiden, dass die Kontrollverbindung tot ist und sie nicht mehr weiterverfolgt, wodurch die Verbindung effektiv unterbrochen und der Download durcheinander gebracht wird. Die einzelne HTTP-Verbindung ist nur zwischen den Anforderungen im Leerlauf und es ist normal und wird erwartet, dass solche Verbindungen nach einem Timeout abgebrochen werden.

Software-Unterstützung

Webbrowser

Die meisten gängigen Webbrowser können auf FTP-Servern gehostete Dateien abrufen, unterstützen jedoch möglicherweise keine Protokollerweiterungen wie FTPS . Wenn eine FTP- statt einer HTTP- URL bereitgestellt wird, werden die zugänglichen Inhalte auf dem Remote-Server auf ähnliche Weise wie andere Webinhalte dargestellt. FireFTP ist eine Browser-Erweiterung, die als FTP-Client mit vollem Funktionsumfang entwickelt wurde und in der Vergangenheit in Firefox ausgeführt werden konnte , aber jetzt wird empfohlen, mit Waterfox zu arbeiten .

Google Chrome hat die FTP-Unterstützung in Chrome 88 vollständig entfernt. Ab 2019 diskutierte Mozilla Vorschläge, darunter nur die Entfernung der Unterstützung für alte FTP-Implementierungen, die nicht mehr verwendet werden, um ihren Code zu vereinfachen. Im April 2021 veröffentlichte Mozilla Firefox 88.0, der die FTP-Unterstützung standardmäßig deaktivierte. Im Juli 2021 stellte Firefox 90 die FTP-Unterstützung vollständig ein.

Syntax

Die FTP-URL-Syntax ist in RFC  1738 beschrieben und hat die Form: ftp://[user[:password]@]host[:port]/url-path(die Teile in Klammern sind optional).

Beispielsweise repräsentiert die URL ftp://public.ftp-servers.example.com/mydirectory/myfile.txt die Datei myfile.txt aus dem Verzeichnis mydirectory auf dem Server public.ftp-servers.example.com als FTP-Ressource . Die URL ftp://user001:secretpassword@private.ftp-servers.example.com/mydirectory/myfile.txt fügt eine Spezifikation des Benutzernamens und des Kennworts hinzu, die für den Zugriff auf diese Ressource verwendet werden müssen.

Weitere Details zur Angabe von Benutzernamen und Passwort finden Sie in der Dokumentation der Browser (zB Firefox und Internet Explorer ). Standardmäßig verwenden die meisten Webbrowser den passiven Modus (PASV), der Endbenutzer-Firewalls leichter durchquert.

Es gab einige Variationen in der Art und Weise, wie verschiedene Browser die Pfadauflösung in Fällen behandeln, in denen es ein Nicht-Root-Home-Verzeichnis für einen Benutzer gibt.

Download-Manager

Die meisten gängigen Download-Manager können auf FTP-Servern gehostete Dateien empfangen, während einige von ihnen auch die Schnittstelle zum Abrufen der auf FTP-Servern gehosteten Dateien bereitstellen. DownloadStudio ermöglicht nicht nur das Herunterladen einer Datei vom FTP-Server, sondern auch das Anzeigen der Liste der Dateien auf einem FTP-Server über den Site Explorer.

Sicherheit

FTP wurde nicht als sicheres Protokoll entwickelt und weist viele Sicherheitslücken auf. Im Mai 1999 haben die Autoren von RFC  2577 eine Schwachstelle für folgende Probleme aufgelistet:

FTP verschlüsselt seinen Datenverkehr nicht; alle Übertragungen erfolgen im Klartext, und Benutzernamen, Passwörter, Befehle und Daten können von jedem gelesen werden, der in der Lage ist, Paketerfassung ( Sniffing ) im Netzwerk durchzuführen . Dieses Problem tritt bei vielen Internetprotokollspezifikationen (wie SMTP , Telnet , POP und IMAP ) auf, die vor der Entwicklung von Verschlüsselungsmechanismen wie TLS oder SSL entwickelt wurden.

Häufige Lösungen für dieses Problem sind:

  1. Verwendung der sicheren Versionen der unsicheren Protokolle, zB FTPS statt FTP und TelnetS statt Telnet.
  2. Verwenden eines anderen, sichereren Protokolls, das den Job verarbeiten kann, z. B. SSH File Transfer Protocol oder Secure Copy Protocol .
  3. Verwenden eines sicheren Tunnels wie Secure Shell (SSH) oder eines virtuellen privaten Netzwerks (VPN).

FTP über SSH

FTP über SSH ist das Tunneln einer normalen FTP-Sitzung über eine Secure Shell-Verbindung. Da FTP mehrere TCP- Verbindungen verwendet (ungewöhnlich für ein TCP/IP-Protokoll, das noch verwendet wird), ist das Tunneln über SSH besonders schwierig. Bei vielen SSH-Clients schützt der Versuch, einen Tunnel für den Kontrollkanal (die anfängliche Client-zu-Server-Verbindung an Port 21) einzurichten, nur diesen Kanal; bei der Datenübertragung baut die FTP-Software an beiden Enden neue TCP-Verbindungen (Datenkanäle) auf und hat somit keinen Vertraulichkeits- oder Integritätsschutz .

Ansonsten ist es erforderlich, dass die SSH-Client-Software über spezielle Kenntnisse des FTP-Protokolls verfügt, FTP-Kontrollkanalnachrichten überwacht und umschreibt und selbstständig neue Paketweiterleitungen für FTP-Datenkanäle öffnet . Zu den Softwarepaketen, die diesen Modus unterstützen, gehören:

Derivate

FTPS

Explizites FTPS ist eine Erweiterung des FTP-Standards, mit der Clients die Verschlüsselung von FTP-Sitzungen anfordern können. Dies geschieht durch Senden des Befehls "AUTH TLS". Der Server hat die Möglichkeit, Verbindungen zuzulassen oder zu verweigern, die kein TLS anfordern. Diese Protokollerweiterung ist in RFC  4217 definiert . Implizites FTPS ist ein veralteter Standard für FTP, der die Verwendung einer SSL- oder TLS-Verbindung erfordert. Es wurde angegeben, andere Ports als normales FTP zu verwenden.

SSH-Dateiübertragungsprotokoll

Das SSH-Dateiübertragungsprotokoll (chronologisch das zweite der beiden Protokolle abgekürzt SFTP) überträgt Dateien und hat einen ähnlichen Befehlssatz für Benutzer, verwendet jedoch das Secure Shell- Protokoll (SSH) zum Übertragen von Dateien. Im Gegensatz zu FTP verschlüsselt es sowohl Befehle als auch Daten und verhindert so, dass Passwörter und sensible Informationen offen über das Netzwerk übertragen werden. Es kann nicht mit FTP-Software zusammenarbeiten.

Trivial File Transfer Protocol

Trivial File Transfer Protocol (TFTP) ist ein einfaches FTP im Lock-Step, das es einem Client ermöglicht, eine Datei von einem Remote-Host abzurufen oder auf einem Remote-Host abzulegen. Eine seiner Hauptanwendungen ist in den frühen Stadien des Bootens von einem lokalen Netzwerk , da TFTP sehr einfach zu implementieren ist. TFTP mangelt es an Sicherheit und den meisten erweiterten Funktionen, die von robusteren Dateiübertragungsprotokollen wie dem File Transfer Protocol angeboten werden. TFTP wurde erstmals 1981 standardisiert und die aktuelle Spezifikation für das Protokoll ist in RFC  1350 zu finden .

Einfaches Dateiübertragungsprotokoll

Simple File Transfer Protocol (das erste Protokoll mit der Abkürzung SFTP), wie in RFC  913 definiert , wurde als (ungesichertes) Dateiübertragungsprotokoll mit einem Komplexitätsgrad zwischen TFTP und FTP vorgeschlagen. Es wurde im Internet nie allgemein akzeptiert und wird jetzt von der IETF als historischer Status eingestuft . Es läuft über Port 115 und erhält oft den Initialismus von SFTP . Es verfügt über einen Befehlssatz von 11 Befehlen und unterstützt drei Arten der Datenübertragung: ASCII , binär und kontinuierlich. Bei Systemen mit einer Wortgröße , die ein Vielfaches von 8 Bit ist, ist die Implementierung von binär und kontinuierlich gleich. Das Protokoll unterstützt auch die Anmeldung mit Benutzer-ID und Passwort, hierarchische Ordner und Dateiverwaltung (einschließlich Umbenennen , Löschen , Hochladen , Herunterladen , Herunterladen mit Überschreiben und Herunterladen mit Anhängen ).

FTP-Befehle

FTP-Antwortcodes

Nachfolgend finden Sie eine Zusammenfassung der FTP-Antwortcodes , die von einem FTP- Server zurückgegeben werden können . Diese Codes wurden in RFC  959 von der IETF standardisiert. Der Antwortcode ist ein dreistelliger Wert. Die erste Ziffer wird verwendet, um eines von drei möglichen Ergebnissen anzuzeigen – Erfolg, Misserfolg oder einen Fehler oder eine unvollständige Antwort:

  • 2yz – Erfolgsantwort
  • 4yz oder 5yz – Fehlerantwort
  • 1yz oder 3yz – Fehler oder unvollständige Antwort

Die zweite Ziffer definiert die Art des Fehlers:

  • x0z – Syntax. Diese Antworten beziehen sich auf Syntaxfehler.
  • x1z – Informationen. Antworten auf Informationsanfragen.
  • x2z – Verbindungen. Antworten zu den Steuer- und Datenverbindungen.
  • x3z – Authentifizierung und Abrechnung. Antworten auf den Anmeldeprozess und die Abrechnungsverfahren.
  • x4z – Nicht definiert.
  • x5z – Dateisystem. Diese Antworten leiten Statuscodes vom Serverdateisystem weiter.

Die dritte Ziffer des Antwortcodes wird verwendet, um zusätzliche Details für jede der durch die zweite Ziffer definierten Kategorien bereitzustellen.

Siehe auch

Verweise

Weiterlesen

  • RFC  697 – CWD-Befehl von FTP. Juli 1975.
  • RFC  959 – (Standard) File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oktober 1985.
  • RFC  1579 – (Informations-) Firewall-freundliches FTP. Februar 1994.
  • RFC  1635 – (Informativ) So verwenden Sie anonymes FTP. Mai 1994.
  • RFC  1639 – FTP-Operation über große Adressdatensätze (FOOBAR). Juni 1994.
  • RFC  1738 – Uniform Resource Locators (URL). Dezember 1994.
  • RFC  2228 – (vorgeschlagener Standard) FTP-Sicherheitserweiterungen. Oktober 1997.
  • RFC  2389 – (Proposed Standard) Feature-Negotiation-Mechanismus für das File Transfer Protocol. August 1998.
  • RFC  2428 – (Vorgeschlagener Standard) Erweiterungen für IPv6, NAT und den erweiterten passiven Modus. September 1998.
  • RFC  2577 – (Informations-) FTP-Sicherheitsüberlegungen. Mai 1999.
  • RFC  2640 – (Vorgeschlagener Standard) Internationalisierung des File Transfer Protocol. Juli 1999.
  • RFC  3659 – (Vorgeschlagener Standard) Erweiterungen für FTP. P. Hethmon. März 2007.
  • RFC  5797 – (vorgeschlagener Standard) FTP-Befehls- und Erweiterungsregistrierung. März 2010.
  • RFC  7151 – (Vorgeschlagener Standard) File Transfer Protocol HOST-Befehl für virtuelle Hosts. Marz 2014.
  • IANA FTP Commands and Extensions Registry – Die offizielle Registry von FTP Commands and Extensions

Externe Links