FTPとは、「File Transfer Protocol」の略称で、ファイルを送受信するためのプロトコルです。
この記事では、FTPの仕組み、SFTPとの違い、デメリット等について、IT初心者の方にもわかりやすく解説していきます。
FTPとは?
FTPとは、「File Transfer Protocol」の略称で、ファイルを送受信するためのプロトコルです。クライアントとサーバー間でファイルのアップロードやダウンロードを行うときに使われます。ポート番号は20、21です。
FTPは、例えばこのWebサイトを閲覧する際にも使われています。Webサイトを作るには、HTMLファイルや画像データをFTPを用いてサーバに転送する必要があります。
FTPの仕組み
FTPの概要はわかっていただけたかと思いますが、次に具体的なFTPの仕組みについて、構成要素、プログラム、コネクション、モードそれぞれの観点から解説していきます。
FTPの構成要素
FTPサーバー
一つ目が、FTPサーバーです。FTPサーバはインターネット側にあり、Webサーバーと繋がっています。一言で言うと、クライアントからデータを受信する側で、サーバー上でデータの上書き更新等の編集も可能です。
このFTPサーバも、anonymousサーバーとそれ以外で大きく2種類に分かれます。anonymousサーバは、その名の通り匿名で誰でもファイルをダウンロードできますが、ダウンロード専用で、公共機関の情報公開などに使われています。anonymousサーバ以外のものは、利用するためにはIDとパスワードが必要で、ログインしてファイルを編集することも可能です。
FTPクライアント
二つ目が、FTPクライアントです。一言で言うとデータをサーバに送る側で、ユーザーのPCなどを指します。クライアントがFTPサーバーにファイルを送るためには、FTPクライアントソフトをインストールすることが必要です。
プログラムの種類
FTPのプログラムは、PIとDTPが使われています。
PIとはProtocol Interpreter(プロトコル・インタプリタ)の略称で、簡単に言うと「クライアントとサーバー間の通訳係」のようなものです。クライアント側の操作をサーバー側にわかるプロトコルに変換します。
DTPは「Data Transfer Process」の略称で、実際のデータ転送を担うプロセスのことです。
このPIとDTPがあって、初めてFTPを利用することができます。
コネクションの種類
FTPのコネクション(接続形態)は、制御用とデータ転送用で2種類があり、それぞれ「コントロールコネクション」「データコネクション」と呼ばれます。
コントロールコネクションは、ログイン情報の管理やコマンドの制御を行い、データコネクションは実際のデータの転送を行います。
モードの種類
FTPは、転送するファイルの種類によってモードが変わります。
「バイナリモード」は、画像ファイルや音楽ファイルを転送する際に使われ、データを修正せずそのまま送ります。
「アスキーモード」は、テキストファイルを転送する際に使われ、改行コードを自動で修正して送ります。
昔は開発環境と本番環境が別々のOSで行われた際に、改行コードの違いで動作しないことがあったため、アスキーモードを使用していましたが、最近では開発環境が進化し、改行コードを修正する必要がなくなったため、現在はアスキーモードはあまり使われていません。
FTPのデメリットは?SFTPとは?
FTPのでメリットは、通信が暗号化されておらずセキュリティリスクがあることです。通信が暗号化されていないと、通信経路で第三者にIDやパスワード等の重要な情報が盗まれてしまう可能性があります。
その対策として、最近は通信を暗号化するSSHというプロトコルを用いた「SFTP」が採用されることが増えてきています。
SSHについては、こちらの記事で詳しく解説しているので、合わせて読んでみてください。
おわりに
いかがだったでしょうか。FTPは、WEBサイト一つ作るにも欠かせない基本的なプロトコルになります。仕組み、デメリットをしっかり理解しておきましょう。
コメント