FTPとは「File Transfer Protocol(ファイル転送プロトコル)」の略です。
FTPは、名前の通り「クライアント」と「サーバー」間でファイルを転送するためのプロトコルです。
下図では、自宅のパソコン(クライアント)からレンタルサーバー(サーバー)へ画像をアップロード(転送)しています。
FTPで転送するファイルの形式は?
どんな形式のファイルでもFTPで転送できます。
- バイナリファイル
- テキストファイル
- スクリプトファイル
- 画像ファイル
ただしファイルの形式によっては転送する際の「モード」に注意する必要があります。
FTPで転送する際の「モード」
FTPで転送する際に「モード」を選択できます。
- バイナリモード
- ASCII(アスキー)モード
どのモードを選択すればいいのかは、ファイルの形式によります。
単純に言えば以下のように「テキストファイル」か「テキストファイルでない」かで判断できます。
- テキストファイル(xxx.html、xxx.txt、xxx.phpなど) → ASCII(アスキー)モードを選択する
- テキストファイル以外(xxx.gif、xxx.pngなど) → バイナリモードを選択する
■バイナリモードとは?
バイナリモードで転送するとは、簡単に言うと「そのまま転送する」という意味です。
通常、FTPでファイルをアップロードする場合は「Windowsパソコン」から「Linux」サーバーへファイルをアップロードするケースが多いです。(ほぼそうかもしれません)
バイナリモードで「そのまま」ファイルを転送した場合、「改行コード」が問題になります。
通常改行モードは
- Windows → CR(キャリッジリターン) + LF(ラインフィード)を使用
- Linux → LF(ラインフィード)
です。
Linuxの標準的な改行コードは「LF(ラインフィード)」です。
そのため「CR+LF」の場合は形式が異なるため何かしらの影響が出るかもしれません。(問題なく動くかもしれませんが)
個人的に使用しているなら障害があってもいいかもしれませんが、組織で利用しているとかビジネスで利用している場合はできるだけ障害の可能性を減らした方がいいでしょう。
そのためには「バイナリモード」より「ASCIIモード」でファイル転送をする方がよいです。
■ASCII(アスキー)モードとは?
ASCIIモードとは、バイナリモードとは異なり、「改行文字」や「文字コード」を自動的に変換してくれます。
そのため「Windows」と「Linux」間のファイル転送に関して特に気にする必要はなくなります。
■ASCIIとは?
ASCII(アスキー)とは「American Standard Code for Information Interchange」の略です。
「American Standard Code for Information Interchange」を日本語で言うと「情報交換用の米国標準コード」となるでしょうか。
ASCII(アスキー)とは「文字コード」です。
「UTF-8」や「SJIS」などの文字コードの中の1つです。
ただしASCIIはコンピュータでは標準の文字コードになっています。
7ビットで英数字および記号文字を表現します。
anomymous FTPとは?
FTPのデータへのアクセス権限は、以下の2つで異なります。
- ユーザーFTP
- anonymous FTP
ユーザーFTPは「アカウント」と「パスワード」が必要で、ログイン後許可されたアクセス権の範囲内でデータを操作(転送・削除など)できます。
anonymous FTPの場合はインターネット上で不特定多数にデータを公開する場合に使用します。
(1人1人にアカウントとパスワードを発行することが困難な環境です)
anonymous FTPは、インターネット上の誰でもTCP接続完了後に、anonymous というアカウントでログインしてアクセス制限内のデータ(ファイル)を利用(ダウンロード)できます。
FTPの接続に関して
FTPでは2つの独立した接続を利用します。
- 「クライアント」と「サーバー」間でコマンドと実行結果を通信する「コマンドチャネル」
- ファイルやディレクトリ情報を通信する「データチャネル」
通常は「FTPサーバー」側は
- コマンドチャネル ← 21番ポート
- データチャネル ← 20番ポート
を使用します。
「FTPクライアント」側は
- コマンドチャネル ← 1024番以上のポート番号
- データチャネル ← 1024番以上のポート番号
を使用します。
FTPの「アクティブモード」と「パッシブモード」に関しては以下の記事を参考にしてください。
【FTPの基本】 「アクティブモード」と「パッシブモード」の違いとは?
コメント