D. J. Bernstein
Internet publication

FTP: File Transfer Protocol

Requests, verbs, parameters, responses, and codes
Greetings
Pipelining

Files, usernames, and pathnames
How a browser retrieves a file
How an indexing client works

The USER, PASS, and ACCT verbs
The TYPE, STRU, and MODE verbs
The CWD, PWD, and CDUP verbs

The PASV, RETR, REST, and PORT verbs
PASV security and PORT security
The LIST and NLST verbs
The QUIT verb

The SYST, STAT, HELP, and NOOP verbs
The STOR, APPE, STOU, ALLO, MKD, RMD, DELE, RNFR, and RNTO verbs
System-specific verbs


These pages are designed as a reference for the File Transfer Protocol (FTP). Unlike the IETF FTP specifications, these pages describe how FTP actually works (and doesn't work) in practice. Let me know if you encounter any interoperability problems not described here.

Exception: I have not attempted to describe the behavior of obsolete servers whose pathnames don't follow the UNIX slash conventions assumed by web browsers. It is the server's responsibility to translate between local pathnames and slashed pathnames.