基礎からわかる!パソコン入門・再入門 / Word・Excel・PowerPoint・Outlook

FTPとは|ファイル転送のプロトコル

  • 著者:YAMANJO
  • 公開日:2008年7月27日
  • 最終更新日:2025年4月26日

HTTP同様にアプリケーション層の代表的なプロトコルである「FTP」について、詳しく学習していきましょう。

FTPとは

前項までにアプリケーション層の代表的なプロトコルであるHTTPと、HTTPで利用されるURL(URI)について学習しました。HTTPはWWWシステムで利用されるプロトコルです。

その他の代表的なアプリケーション層のプロトコルとしては、インターネットのWWW以外の要素 で学習のとおり、インターネットのWWW以外の要素となるファイル転送、遠隔操作、電子メールなどのプロトコルがあります。

本項では、このうち、

FTP(エフティーピー)

について詳しく学習していきたいと思います。

FTPは「File Transfer Protocol」の略で、文字どおりファイルを転送するためのプロトコルになります。HTTP同様に、TCP/IPによって確立したパケット通信のうえで動作します。

ファイル転送とは、これも文字どおりファイルを転送することですが、パケットとルーティング で学習のとおり、「伝送」という用語と使い分けが難しくなっています。

一般的にはどちらも同じ意味で使われていますが、主にネットワークを介してデータを送ることを「伝送」と言い、通信の意味が強い呼び方です。一方、ネットワークを介さないデータ移動や保存(例えばUSBメモリへのコピーやフォルダ間の移動など)も含めて、データの移動一般が「転送」と呼ばれています。

さらに言えば、OSI参照モデルの中で、下位層の物理的なデータのやり取りを伝送、上位層が行うアプリケーションレベルのデータのやり取りを転送という傾向があります。(OSI参照モデルについては、プロトコルとOSI参照モデル を参照してください)

では、それを踏まえて、なぜFTPがファイル転送のプロトコルと呼ばれるのか理解できるでしょうか?

すでにTCP/IPによって通信は確立しているはずであり、わざわざアプリケーション層でまたファイル転送を規定する必要はないように思えます。

言わば、これが「伝送」と「転送」の使い分けでもあります。下位層で確立したパケット通信は、あくまでパケットを順番通りに相手に届けるだけで、小分けにされたパケットが画像なのかメールなのかというファイルの中身にはまったく関知しません。例えるなら、伝送は荷物を届ける宅配業者になります。

対して、ファイル転送のプロトコルであるFTPは、指定されたファイルの種類に応じて、それに合わせた手順を規定しています。例えば、運送業者に「冷凍」や「天地無用」を指定することです。つまり、ファイルの中身に立ち入らないのが伝送、扱い方まで指定するのが転送と言えます。

ただし、FTPでもファイルの中身まで深く解釈することはありません。ファイルの種類を指定するのはアプリケーションソフトであり、それを操作するユーザーだからです。あくまで、アプリケーションに指定されたファイル形式(テキストかバイナリかなど)に応じた転送手順を提供するということです。(テキストとバイナリについては、ファイルとは を参照してください)

FTPとHTTPの違い

では次に、また別の視点で考えてみましょう。

HTTPは、URLによってファイルが取得される仕組みでした。ということは、HTTPでもウェブサーバからファイルの転送を担っていることになります。HTTPとFTPはどう違うのでしょうか?

これは両者の目的の違いです。確かにどちらもファイルを転送しますが、HTTPはウェブページを閲覧するための通信手順であり、主にブラウザを介しての表示を目的としています。つまり、サーバからブラウザへの一方向の通信を基本としています。

FTPの場合は、ファイルの送受信自体を目的としており、サーバからのダウンロードや、サーバへのアップロードといったファイル操作や管理を規定しています。したがって、双方向の通信が基本です。

そもそも、FTPはインターネットの初期から存在するプロトコルで、WWWの誕生以前からインターネットの目的の1つであるファイル転送を担ってきました。もともと単純にファイルを送受信するFTPが主流だったわけです。

そのため、FTPの設計はシンプルで扱いやすいプロトコルです。OSなどの環境が異なっても操作が簡単で、双方向の通信が可能なため、サーバにアップロードしたファイルを直接操作することが可能です。HTTPではサーバ側のファイルを直接操作することはできません。

つまり、サーバ側のファイルを操作できるか否かということが大きな違いになるのですが、逆に言えば、ファイルの転送だけに関して言えばFTPとHTTPで大きな違いはありません。どちらでもファイル転送が可能です。

HTTPは汎用的なプロトコルで、URLによってHTMLファイルや関連するファイルを指定することができるように、実際には、どんなファイルでもウェブサーバからダウンロードすることができます。

ひと昔前のダウンロード系のサイトでは、ダウンロード欄に「FTPでダウンロード」と「HTTPでダウンロード」の2通りの方法に分けてある場合が多くありました。

「FTP」と「HTTP」のダウンロードボタンイメージ

現在では見かけることがありませんが、これは、会社のパソコンなどの利用環境によって、管理者からダウンロードに制限がかけられている場合があり、FTPが使えないことがあるのでHTTPも用意していたからです。

転送速度にも違いはほとんどありません。同じパケット通信をベースとするプロトコルであり、転送速度や転送容量にそれほどの差はないのです。

逆に現在では、FTPでダウンロードするケースがほとんどなくなっています。なぜなら、FTPは古くから使われているプロトコルのため、セキュリティが非常に脆弱なためです。

現在では、HTTPにセキュリティ機能を追加したHTTPSにほぼ切り替わっています。また、ほとんどのブラウザでFTPがサポートされなくなっています。

ではなぜ、FTPを学習するのかと言うと、HTTPがHTTPSに切り替わったのと同様に、セキュリティ機能が追加されたFTPが使われているからです。そのため、まずはFTPの仕組みを理解しておきましょう。

FTPの仕組み

こうして、現在ではHTTPSによるダウンロードが一般的になっていますが、そもそも、なぜFTPでHTTPと同じファイルをダウンロードできるのか疑問に思われたかもしれません。

これは前項で学習のとおり、実際には1つの物理サーバで、WWWやFTPなどの異なる役割を担うサーバプログラムや仮想サーバを動かしているからです。つまり、ウェブページのHTMLファイルが保存されている領域に、FTPでアクセスできるように設定されており、HTTPとFTPが同じフォルダを参照しているということです。

また、アップロードについても、現在ではFTPとHTTP(実際にはHTTPS)の両方で可能になっています。

昔のHTTPは、基本的に一方向のダウンロード専用であり、アップロードの一般利用には制限がありましたが、関連技術の進歩によって一般利用も可能になっています。例えば、GoogleドライブやDropboxといったクラウドサービスは、HTTPSを使ってダウンロード・アップロードを行っています。

つまり、どちらもHTTPSで代用できるようになったわけです。こうして、セキュリティの脆弱なFTPやFTPサーバを利用するメリットがほとんどなくなり、ダウンロードサイトからも「FTP」の文字が消えていくことになりました。

しかし、FTPにもHTTPで代用できない機能があります。それが、先述したサーバ上でファイルを操作する機能です。

ファイル操作とは、サーバ上のファイルの削除や移動だけでなく、個々のファイルへのパーミッションというアクセス権(読み取りや書き込みの許可など)の設定などです。HTTPでサーバにファイルをアップロードすることはできますが、サーバ上のファイルを直接編集する操作はできません。

ではなぜ、Googleドライブなどのクラウドサービスで、ローカル端末(自分のパソコンの意味)のようにファイル操作が可能なのかと言うと、これはサービスの提供者側が高度なアプリケーションソフトで管理しているからです。

HTTPSの仕組みではなく、クラウドサーバ側のアプリケーションソフトの機能でローカルフォルダのように操作できているということです。つまり、HTTPSだけで動いているわけではありません。ファイルのダウンロードとアップロードにHTTPSを利用しているだけになります。

したがって、ウェブサイトなどの複数のHTMLファイルや関連するファイルをウェブサーバにアップロードして、サーバ上でそれぞれのファイルにアクセス権などを設定したい場合は、まだFTPを利用している場合があります。

下図は「ホームページビルダー」というウェブページ作成用のソフトに付属されたFTPソフトのイメージです。

FTPソフトの画面イメージ

左側がローカルフォルダで、右側がウェブサーバのフォルダになります。このように多くのFTPソフトでは、シンプルな操作でファイルのダウンロードやアップロード、サーバ上のファイルの管理を行うことができるようになっています。

さらに、HTTPにはない特徴もあります。それは、

FTPでファイル転送を行うには「認証」が必要になる

という点です。

FTPはサーバ上のファイルを操作できるため、最低限度の認証機能を有しています。このFTPソフトでも設定画面をみると「パスワード」があり、ユーザーIDとパスワードによる認証プロセスが必要になっています。

FTPの認証画面のイメージ

しかし、以前のフリーソフトのダウンロードサイトでは、ダウンロードボタンをクリックするだけで、認証操作をすることなくFTPでダウンロードすることができていました。

「FTP」と「HTTP」のダウンロードボタンイメージ

なぜ、認証が必要なかったのかと言うと、

Anonymous FTP(アノニマス エフティーピー)

という仕組みを使っていたからです。

Anonymous FTPは、匿名のIDを利用して誰でも認証できるようにした仕組みです。つまり、IDとパスワードを取得していなくてもログインできるようにしています。

Anonymousと言えば有名なハッカー集団を連想しますが、本来は「匿名」の意味で「Anonymous」というユーザーIDをあらかじめ作っておいて、パスワードによる認証を行わずにFTPサーバにログインできる仕組みです。

これは、FTPサーバの中にAnonymousアクセス専用のフォルダを作成することで、そのフォルダにあるファイルを誰でもダウンロードできるようにするものです。FTPサーバ全体が無制限に開放されるわけではありません。

とは言え、本来必要な認証作業を、Anonymousという匿名で無効化できるということで、まさにFTPの脆弱性を象徴する仕組みでした。誰でもサーバにアクセスできて、ファイルに設定を加えることができてしまう仕組みです。

そのため、Anonymous FTPサイトも減少の一途をたどっています。わずかに残っているAnonymous FTPサイトでは、ユーザー名に「Anonymous」か「ftp」を、パスワードには「自分のメールアドレス」を入力して認証を受けるのが慣例になっています。

FTPサーバの認証画面イメージ

こうして、FTPサーバを利用するメリットもあまりなくなり、HTTPSを使ってウェブサーバに保存したファイルをダウンロードする形式に移行しています。

下図は、あるダウンロードサイトからフリーソフトをダウンロードしたときのブラウザの確認画面です。

FTPサーバからのダウンロード画面のイメージ

前項で学習のとおり、URLのスキームがHTTPSのため、FTPではなくHTTPSでダウンロードされていることを示しています。

サブドメイン名が「ftp.」であり、FTPサーバを示しているようですが、実際のところは判断できません。サブドメインに「ftp.」があるのは過去の名残りで、実際にはウェブサーバからHTTPSでダウンロードするケースが多いようです。

FTPの問題点は、Anonymous FTPやサーバを直接操作できてしまう点もありますが、暗号化通信に対応していない点が大きく、認証に必要なユーザIDやパスワードといった情報が暗号化されずに平文(ひらぶん)でやり取りされてしまうことです。

そのため、現在のFTPは、HTTPSで代用できない一部の通信に対して、セキュリティ機能を強化したFTPSやSFTPの利用に置き換わっています。

FTPS

HTTPSで代用できない通信には、どのようなケースがあるのかと言うと、先述したウェブページのHTMLファイルをサーバに転送して、サーバ側でも管理を行う場合や、特定の相手と定期的に大量のデータをやり取りする場合などがあります。

例えば、銀行同士で決済情報をやり取りしたり、業者間で納品書や仕様書をやり取りしたり、メディア業界でコンテンツファイルをやり取りする場合などです。

こうしたケースはHTTPSで代用することが難しく(または手間がかかるため)、どうしてもセキュリティの高いFTPのようなファイルを転送プロトコルが必要になります。

セキュリティの高いFTPを利用することで、実際にはサーバを介してファイルを転送することになりますが、HTTPSでファイルを転送するよりも効率的に届けることができます。なぜなら、HTTPSでは多くの場合、クラウドサービスのようにウェブ上のアプリケーションソフトを経由する必要があるからです。(クラウドサービスでは相手にダウンロードしてもらう必要があります)

現在、セキュリティ機能を強化したファイル転送プロトコルは、代表的なものが2つあります。

2つだけというわけではなく、よく使われるプロトコルが2つあるということです。それは、FTPにセキュリティ機能を追加したプロトコルと、まったく別のプロトコルをベースに新しく設計されたプロトコルです。

このうち、FTPにセキュリティ機能を追加したプロトコルを、

FTPS(エフティーピーエス)

と言います。

FTPSは「File Transfer Protocol over SSL/TLS」の略で、FTPにSSL/TLSという暗号化通信技術を追加したプロトコルです。

SSL/TLS(エスエスエル/ティーエルエス)については、公開鍵暗号通信の仕組みから理解していく必要があるので、それを学習したうえで、SSL/TLSとは で詳しく学習します。

簡単に言えば、素数などのコンピュータでも容易に解を求めることができない数学的な原理を利用して、ファイルのビット列を暗号化する仕組みです。暗号化によって、例えばパスワードを盗み見されたとしても解読できない文字列になっています。

こうした暗号化の代表的な仕組みが「SSL/TLS」です。実際にはSSLの後継となるTLSが使われていますが、SSLが有名なために、SSL/TLSと呼ばれたり、TLSのことを指してSSLと言う場合もあります。

つまり、FTPの設計はそのままで、SSL/TLSの機能が追加されたプロトコルがFTPSになります

また「A over B」という表現は今後もよく登場することになるので覚えておきましょう。これは、通常その環境で利用できないプロトコルを利用できるように適用させるという意味になります。

わかりやすく言えば「Bの環境でAを利用するためにBで包み込む」という意味です。「FTP over SSL/TLS」では、SSL/TLSを利用するためにFTPをSSL/TLSで包み込み、FTPで暗号化通信を可能にしたプロトコルです。

詳しい説明は割愛しますが、この他には「PPPoE(PPP over Ethernet)」、「IPoE(IP over Ethernet)」、「IPv6 over IPv4」などがあります。このようにBで包み込む技術を「カプセル化」と言いますが、暗号化通信の仕組みと合わせて以降で詳しく学習していきます。

FTPSが選択されるケースとしては、FTPをベースとしたレガシーシステム(過去の技術や仕組みで構築されているシステム)をそのまま使いたい場合や、相手側のアプリケーションがFTPSにしか対応していない場合などです。

このように、FTPSはFTPの後継とも言えるプロトコルですが、主流とは言えず、限定的な利用にとどまっています。

また、FTPの動作仕様を引き継いでいるため、Anonymous FTPも利用できますが、やはりセキュリティ上の問題が大きく、利用者を社員や学生に限定する場合など、Anonymous FTPも非常に限定的な場面でしか使われていません。

SFTP

現在、FTPSはあまり使われておらず、実際にはまったく異なる仕組みを持つ新しいプロトコルが広く利用されています。

それが、

SFTP(エスエフティーピー)

になります。

SFTPは「SSH File Transfer Protocol」の略で、SSH(エスエスエイチ)という暗号化通信の仕組みを利用するプロトコルです。FTPをベースとせず、SSHの一部として開発されたまったく新しいファイル転送プロトコルになります。

SSHは「Secure Shell」の略で、機器を遠隔操作する際に用いられるプロトコルです。遠隔操作と言えば、インターネットのWWW以外の要素 で学習した「Telnet」になりますが、この後継プロトコルになります。

TelnetもFTPと同様に古いプロトコルで、暗号化通信に対応しておらず、リモート操作を暗号化通信に対応させたのがSSHになります。(Telnetに暗号化機能を加えたわけではありません)

SSHとSSL/TLSの違いを簡単に言えば、用途の違いです。

どちらも対象となる経路(サーバとクライアントのアプリケーション間)の通信を暗号化しますが、SSL/TLSは主にWWW、電子メール、ファイル転送などのアプリケーションが行う通信を暗号化します。つまり、アプリケーション層の多くのプロトコルに対応しています。

SSHも同様に経路上の通信を暗号化しますが、リモート操作を目的としているため、サーバーにログインしてコマンドを実行したり、操作を行ったりする機能を有しています。SSL/TLSにはこうした機能はありません。しかし、SSHは異なるアプリケーション層のプロトコル(SSHベースではないプロトコル)には対応できません。

そのため、どちらが良い悪いではなく、用途の違いです。ただし、どちらも公開鍵暗号化方式を利用しており、暗号の強度に違いはないと言えます。

SSHをベースにしている理由は、FTPの特徴であるサーバ側の操作が可能になるためです。HTTPSではサーバ操作をFTPのように代用することはできません。(また、SSHだけでは大量のファイル転送に柔軟な対応ができません)

SFTPは、FTPの名前が入っていますがFTPとはまったく異なる性質のプロトコルになります。そのため、SFTPではAnonymous FTPの利用はできません。SFTPでは明確なユーザー認証が必須になっています。

こうして、FTPはその利用価値こそ低下しているものの、限定された場面ではセキュリティ機能を有したFTPSやSFTPといったプロトコルが使われています。ホームページ作成ソフトなどに付属するFTPツールでは、バージョンによって、FTPの他にFTPSやSFTPが選択できるようになっています。

更新履歴

2008年7月27日
ページを公開。
2009年5月11日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年1月26日
ページをSSL化によりHTTPSに対応。
2025年4月26日
内容修正。

著者プロフィール

YAMANJO(やまんじょ)

経歴
岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
関連リンク
詳細なプロフィールはこちら
作成したボカロ曲などはYoutubeへ
X(Twitter)
著者YAMANJOのイメージ画像