FTP通信の仕組み

情報処理-基礎知識

FTPとは

ファイル・トランスファー・プロトコルの略です。

ファイルを受け渡すときに使うお約束事。

やりたいことは、クライアントとサーバー間のファイルの送受信を行うために使用する通信規約です。

 

サーバーにファイルをアップロードする仕組みについて

サーバーにファイルをアップロードするということは、
FTPクライアントからFTPサーバーにファイルをアップロードするということです。

 

FTPクライアント:FTPを使ってファイルを送ろうとしている端末
FTPサーバー:FTPを使ってファイルを受け取ろうとしている端末

 

FTPを使うということは、FTPコマンドを入力するということです。
つまり、ファイル送受信を行うためにはコマンドを覚えておかなくてはいけません。

しかし、コマンドを覚えていなくても
FFFTPやWinSCPなどのGUI(ツール)でファイル送受信を行えます。

 

コマンドまで知りたいあなたへ

FTPコマンドを使ってファイルを送信したい場合、下記のステップを踏む必要があります。

①FTPの起動
②データを転送するサーバにログインする
③ローカルディレクトリを指定
④リモートディレクトリの指定
⑤転送するファイルの種類にあわせて転送モードを指定
⑥ファイルの転送
⑦FTPを終了

 

①FTPの起動

  1. スタートメニューから[プログラム]-[MS-DOSプロンプト]を選択する
  2. MS-DOSウインドウが開き、DOSプロンプトが表示される
  3. ftpを起動するC:\WINDOWS>ftp

②データを転送するサーバにログインする

  1. サーバーに接続する
    接続したいドメインまたはIPアドレスを入力する。


     
  2. ユーザIDを入力する

     
  3. パスワードを入力する

     
  4. 正しく認証されれば、サーバへの接続は完了。

 

 

③ローカルディレクトリを指定

  1. 転送するファイルの場所を指定する(例:ホームページデータが A:\homepage にある)

 

 

  1. ローカルディレクトリ(転送元)のファイルの確認をするftp> !dir

 

④リモートディレクトリの指定

  1. 転送先の場所を指定する(UNIX上のホームページを置くディレクトリは public_html )

 

  1. リモートディレクトリ(転送先)のファイルの確認をするftp> dir

 

 

⑤転送するファイルの種類にあわせて転送モードを指定

  1. ファイルには、バイナリ形式ASCII形式の2種類があり、 転送する前にファイルにあったモードに切り替える必要があります。また、 モードを間違えて転送するとファイルが壊れるので注意しましょう
    ASCII形式:HTMLなどのテキストファイル
    バイナリ形式:テキスト以外のファイル(画像、音、プログラムなど)
  2. ASCII形式ファイルを転送するときは

 

  1. バイナリ形式ファイルを転送するときは

⑥ファイルの転送

サーバへファイルを転送する基本的なコマンドは「put」コマンド。
以下に、サーバ接続~ファイルアップロードまでのコマンド例を示す。

  1. HTMLファイルを転送する( index.html )
  2. 画像ファイルを転送する( image01.gif , image02.gif )

     

⑦FTPを終了

  1. ftpを終了する
  2. DOSウインドウを終了する
  3. DOSウインドウが閉じる

 

複数のファイルアップロード

マッチングしたファイルを複数アップロードするコマンドは「mput」コマンド。

 

そのまま実行すると、毎回確認が入るので、その場合はインタラクティブモードを切り替えるコマンドを事前に実行しておく。

 

ディレクトリごとアップロード

ダウンロードと同じく、PCで先に圧縮してから転送し、サーバ側で解凍するやり方でやってる。

 

ファイルのダウンロード

サーバからファイルを取得する基本的なコマンドは「get」コマンド。

FTPダウンロードの流れ

 

複数のファイルを同時にダウンロード

マッチングしたファイルを複数ダウンロードするコマンドは「mget」コマンド。

 

そのまま実行すると、毎回確認が入るので、
その場合は対話スキップのコマンドを事前に実行しておく。

 

ディレクトリごとダウンロード

他にいいやり方があるかもしれないけれど、先にサーバ側で圧縮してから転送するやり方でやってる。

 

コマンドを覚えておく必要性ってある?

今回はFTPとは何か。
そしてコマンドプロンプトでのFTP通信を用いてクライアント~サーバのファイル転送を解説しました。

途中でも話しましたが、通常ファイル転送ツール(アプリケーション)を使って画面で行います。
ではこのコマンドを覚える意味はないのか?

例えば、シェルでバッチアプリケーションを作る際に、その中でファイルアップロードやダウンロードをする処理があった場合にコマンドが必要になります。

 

 

コメント