FTPとは?
まずは、データ転送でよく使われるFTPとはどのようなものか見ていきましょう。
ファイル転送プロトコルのこと
FTPとは「File Transfer Protocol」のことであり、ファイルを転送するための通信規格です。クライアントとサーバ間で、ファイルのアップロードやダウンロードを行うときに使われるプロトコルです。
例えば、Webサイトを公開する際には、画像やテキストなどの「ファイル」をFTPでサーバに転送する必要があります。ファイル転送はFTPソフトを活用し、FTPサーバに接続することで実現します。
さまざまな通信プロトコルの一つ
ファイルを転送する通信プロトコルはFTP以外にも存在します。
例えば、多くの方に馴染みがある「HTTP」は、ブラウザ・Webページを表示する際に利用される通信プロトコルです。HTTPは「HyperText Transfer Protocol」の略であり、HTMLで記述されたファイルをサーバからクライアントに転送します。
FTPとHTTPは両者とも特定の機器間でファイルのやり取りを行いますが、利用するポートが異なります。HTTPの場合は、80番ポートを利用するのに対し、FTPが使うのは20番と21番のポートです。FTPは2つのポートを使用できるため細かな制御が可能で、大きなデータの転送に適しています。
ほかのプロトコルの種類が知りたい方は、以下の記事を御覧ください。
FTPを利用したファイル転送の仕組み
つづいては、FTPがどのような仕組みでファイル転送しているのか見ていきましょう。

FTPサーバとFTPクライアント間でやり取りする
FTPを利用してファイル転送のやり取りを行う場合、サーバ側を「FTPサーバ」、クライアント側を「FTPクライアント」と呼びます。このサーバとクライアント間でコネクションを構築してファイルのやり取りを行います。
サーバの種類
このFTPサーバの種類は、匿名で利用できる「anonymousサーバ」とそうではないものの2つです。anonymousサーバは誰でもファイルをダウンロードできますが、ダウンロード専用であり、公共機関の情報公開に利用されています。
anonymousサーバ以外のサーバは、利用するために特定のIDとパスワードが必要です。このようなサーバは、ログインすると、制限された権限の中でファイルのアップロードを行えます。
プログラムの種類
また、FTPはPIとDTPの2つのプログラムが使われています。PIは「Protocol Interpreter」の略で、コマンドの指示をプロトコルに合わせて変換するものです。DTPは「Data Transfer Process」の略で、データを転送するプロセスのことです。
PIとDTPの2つが揃うことでFTPが機能します。
コネクションの種類
FTPでは制御用とデータ転送用の2つのコネクションを使います。制御用のコネクションはコントロールコネクションといい、ログイン情報やコマンドの制御を行うのが役割です。一方でデータ転送用のコネクションはデータコネクションといい、データの送受信のために利用されます。
バイナリモードやアスキーモードで転送する
FTPは転送するファイルの種類によってコマンドの種類が異なります。画像ファイルや音楽ファイルを転送する際には、改行コードの変換を行わない方式である「バイナリモード」を利用します。
テキストファイルを転送する際には「アスキーモード」を利用します。テキストのみを対象としているため、テキストモードとも呼ばれる方式です。アスキーモードでは、ファイルに含まれる改行コードや文字コードが自動で変換されます。
ただし、開発環境が進化したことに伴い、改行コードを変換する必要がないため、最近はアスキーモードが使われることはありません。
FTPのデメリット
FTPはクライアントとサーバ間でファイル転送のやり取りを行いますが、その通信は暗号化されていません。つまり、悪意がある第三者に介入されると通信内容が外部に漏れてしまう危険性があるのです。
例えば、IDやパスワードなどのログイン情報が盗まれれば、不正アクセスに遭うリスクが高まるでしょう。そのため、セキュリティ強度が高い安全な方法を利用するのがおすすめです。
SSHというプロトコルを使って暗号化された通信を利用する「SFTP」であれば、安全性が高いです。最近のサーバはSFTPを採用していることが多く、安全にファイル転送ができるようになっています。
ファイル転送のFTPを知り、最適な送信方法を選択しよう!
FTPはファイル転送を行うプロトコルの一種であり、Webサーバにデータを転送する際に使われます。HTTPと違いポートが2種類あるため、細かい制御が可能なことから、利用される機会が多くありました。
しかし、サーバとクライアント間の通信を暗号化できないため、セキュリティ上の問題が発生しやすいデメリットがあります。暗号化されているSFTPを利用するなど、最適な送信方法を選ぶようにしましょう。