彩音 - UNIX - 研究室:XION - UNIX -laboratory
FTP と HTTP の違い

FTP を HTTP と比較すると、大きく分けて2つの点で異なっています。HTTP は1回の命令ごとにコネクションが発生しますが、FTP の場合は接続を始めてから接続が終わるまでの区切りを持っています。
もう1つは、FTP は制御用と通信用にそれぞれ別ポートを使用するということです。制御用ポート番号は21番、通信用ポート番号は20番です。21番は常に接続状態にあり、20番ポートで接続切断を繰り返しつつ、データの送受信を行います。
データ通信に用いられるポート番号は20番以外が使われることもあります。ランダムな番号を使用することで、よりセキュリティー上好ましいとされることもあります。また、FTP には、FTP クライアント側にファイアウォールがあった場合にもうまく通信が行えるように、クライアント側から接続ポートを指定してアクセスするためのパッシブモードと呼ばれる機能があります。
FTP の持つこうした特徴は、over SSL 通信やファイアウォールの設定を行うにあたり、重要なポイントとなります。最初に接続するポートと、実際に通信に使われるポートが別であるため、状況によっては簡単な設定では over SSL 通信やファイアウォールが実現しにくいのです。この点を理解しておかないと、外部のプログラムを使って over SSL を実現したり、ファイアウォールの設定を行う際に正しい設定を行うことができません。