全5090文字
PR

 認証はユーザーIDとパスワードでクライアント認証を実施するためのコマンドである。ユーザーIDを送信する「USER」やパスワードを送信する「PASS」が該当する。なおFTPではパスワードが暗号化されず平文で送られるので注意が必要だ。盗聴される恐れがある。

 切断・中断のコマンドには、制御コネクションを切断する「QUIT」、ファイル転送を中断する「ABOR」がある。QUITはデータコネクションが確立していたらそれも切断する。このためQUITは制御コネクションの切断というより「FTPの終了」と言ったほうが分かりやすいだろう。

 ファイル転送は指定したファイルをダウンロードあるいはアップロードするためのコマンドである。「RETR」や「STOR」などが該当する。これらのコマンドが成功すると、DTP同士がデータコネクションを確立することになる。

 データコネクションはその名の通りデータコネクションに関するコマンドだ。データコネクションで使うクライアント側のポートを指定する「PORT」や転送するファイルの種類を指定する「TYPE」などがある。

 ディレクトリーリストはディレクトリーの操作に関するコマンド群である。現在のディレクトリー(ワーキングディレクトリー)を変更する「CWD」やワーキングディレクトリーを表示する「PWD」、ディレクトリーを作成する「MKD」、ディレクトリーに存在するファイルのリストを要求する「LIST」などがある。なお、ファイルのリストはデータコネクションで送られるので、ファイル転送のコマンドと同様にデータコネクションを確立する。

 一方、コマンドを送られたサーバーのPIはその応答としてレスポンスコードと呼ばれる3桁の数字を返す。データはDTPでやりとりするので、サーバーのPIはレスポンスコードだけを送信する。

 レスポンスコードの1桁目と2桁目の数字には意味がある(図4)。1桁目はレスポンスの種類を表す。この数字でコマンドが正常に処理されたのかエラーになったのか、次の動作をどうするかなどが分かる。2桁目はどの項目についての応答なのかを表す。

図4●FTPサーバーが送信するレスポンスコードの例
図4●FTPサーバーが送信するレスポンスコードの例
FTPクライアントから送られたコマンドに対して、FTPサーバーのPIはその可否などを3桁のレスポンスコードで返す。レスポンスコードの1桁目と2桁目の数字には意味がある。
[画像のクリックで拡大表示]

 例えばクライアントにパスワードを要求する「331」は、認証・アカウントに関係し、次のコマンドを要求するレスポンスコードであることが数字から分かる。

 また、クライアントから送られたQUITコマンドに対して返す「221」はコネクションに関係し、正常に完了したことを表す。