D. J. Bernstein
Internet publication
FTP: File Transfer Protocol


The server's initial response to the client must use code 220 or 421.

RFC 959 permits the server to send a mark before its greeting:

     120 Give me 37 seconds...
     220 Features: p .
However, servers must not do this. The BSD ftp program will treat the 120 as if it were a 220, causing a disastrous loss of synchronization with the server.

220 greetings

220 accepts the connection:
     220 Features: p .
RFC 959 does not impose any requirements on the text after 220. Most servers use the text for a human-readable operating system name. Some servers use multiple-line responses for human-readable announcements:
     220-See ir.html if you're looking for IR information.
     220-See index.html for everything else.
     220 Features: a p .

The string 220 Features: on the last line of the greeting indicates an experimental greeting format, designed to help speed up clients. The rest of the line is a series of feature strings, in any order, each preceded by one space, terminated by a space and a dot at the end of the line.

Feature strings do not contain spaces. Feature strings have the general format xy, where x is one of the following strings:

New feature strings will be allocated upon request, although not necessarily with the requested names.

Note that greeting lines are case-sensitive: servers must use lowercase and uppercase exactly as shown here.

421 greetings

421 temporarily rejects the connection:
     421-ftp.heaven.af.mil is too busy to provide files right now.
     421 Please come back in 2040 seconds.
The server closes the connection without reading any requests from the client.