FTP(File Transfer Protocol)
FTPとは
FTP(File Transfer Protocol)とは、ネットワーク上にあるサーバとクライアント(利用者のコンピュータ)間でファイル転送を行うプロトコルです。
FTPには主に次の2つの用途があります。
1つ目はネットワーク上にあるサーバからクライアント(利用者のコンピュータ)に特定のファイルをダウンロードすることです。
そして、2つ目はクライアント(利用者のコンピュータ)からネットワーク上にあるサーバにファイルをアップロードすることです。
FTPでは、認証のためのユーザ名・パスワードや転送データは暗号化されません。そのため現在では、FTPの通信をSSL/TLSにより保護した「FTPS」や、SSHの仕組みを利用した「SFTP(SSH File Transfer Protocol)」などの代替のプロトコルがよく利用されています。
スポンサーリンク
アクティブモードとパッシブモードの違い
FTPの動作モードには「アクティブモード」と「パッシブモード」が存在します。その違いはどちらからコネクション(接続)を確立するかの違いです。
アクティブモードとは
アクティブモードでは、サーバからクライアント(利用者のコンピュータ)に対してコネクションの確立を行います。サーバはクライアントが指定したポートに対してコネクションを確立します。
しかし、ファイアウォールやNAT(IPマスカレード)などを使った環境では、設定によりアクティブモードでは接続できないことがあります。(外部からのアクセスをファイアウォールやNATが遮断してしまう)その場合は、パッシブモードを使用するか、設定を変更して接続ポートを開放する必要があります。
パッシブモードとは
パッシブモードでは、クライアント(利用者のコンピュータ)からサーバに対してコネクションの確立を行います。クライアントはサーバが指定したポートに対してコネクションを確立します。
バイナリモードとASCIIモードの違い
FTPでファイルを転送する際「バイナリモード」か「ASCIIモード」かを選択することが可能です。
バイナリモードとは
バイナリモードとは、送信側は各ファイルをバイト単位で送信し、受信側はバイトストリームを保存する転送モードです。バイナリモードの特徴は送信側・受信側ともデータの変換を行わないことです。
現在では、FTPの全ての実装に対してバイナリモードの対応が推奨されています。
ASCIIモード(アスキーモード)とは
ASCIIモードとは、テキストファイルの転送に使われる転送モードです。ASCIIモードの特徴は改行コードや文字コードの変換が自動で行われるところです。
ファイルをそのまま転送するバイナリモードとは違い、ASCIIモードは環境に合わせてファイルを加工して転送します。
では、なぜ加工する必要があるのでしょうか。それはOSによって改行コードが違うことが原因です。Unix・Linux系の改行コードは「LF」、Windowsの改行コードは「CRLF」です。このようなOS間のテキストファイル改行コードの差異を吸収するために、FTPのASCIIモードが存在しています。
しかし、近年ではエディタや開発環境も進化しており、ASCIIモードはあまり利用されないモードとなってきています。