38177


サーバAにあるファイルをサーバBからとってきたいとします。  
私はこのやり方として、HTTPでとってくる方法とSFTPでとってくる方法を知っているのですが、二つの違い（つまり、どんな時にはどちらを使う方がよいのか）を簡単に教えていただけませんか？

追記：

> ど‌​ちらを選択したら良いか迷う状況というのは‌​例えばどういう状況を想定していますか？質‌​問を編集して追記してください – suzukis

→サーバAにエクセルファイルやらPDFファイルやらが置いてあるとします。これをHTTPでダウンロードできるようにすることもできるし、保管してあるディレクトリまで行ってSFTPでとってくることもできます。


CC BY-SA 3.0
2017-09-25T02:10:03.387
38165
2023-03-31T07:21:00.610
2023-03-31T07:21:00.610
3060
question
http sftp
ファイル転送におけるHTTPとSFTP


どちらを使うかによって、サーバA側で待機させるデーモンが異なってきます。

HTTPを使うならhttpd(webサーバ)を、SFTPを使うならsshd(SSHサーバ)がそれぞれ  
サーバA上であらかじめ起動しておく必要があります。

SFTP(SSH)は基本的に認証が必要なのに対して、HTTPの方はファイルのパスさえ分かれば  
誰でもアクセス出来てしまうという違いあります(BASIC認証等をかける方法もありますが)。

ある程度閉じた環境(ネットワーク)内であればそれほど違いは気にならないかもしれませんが  
SFTPの方がより安全なのかなと思います。


CC BY-SA 3.0
2017-09-25T05:24:50.763
38167
2017-09-25T05:24:50.763
3060
38165
answer


大雑把に言うと

  * HTTPは不特定多数にファイルに限らないコンテンツを公開するためのもの
  * SFTPはサーバにアクセス権がある特定ユーザーが、その権限の範囲でファイルのアップロードダウンロードをするもの

です。

>
> サーバAにエクセルファイルやらPDFファイルやらが置いてあるとします。これをHTTPでダウンロードできるようにすることもできるし、保管してあるディレクトリまで行ってSFTPでとってくることもできます。

ダウンロードしたいのが自分だけで、そのサーバにSFTPでアクセス可能ならファイルをわざわざHTTPでアクセス可能にする意味はありません。それが公開してはまずいファイルであれば、無意味どころか危険です。

自分だけでなく不特定多数に公開する必要があるなら、SFTPでは無理なのでHTTPで公開する必要があります。

HTTPで公開したが、SFTPでもアクセス権があり、どっちでもダウンロード可能というのであればそれはどちらでも好きにしたらよいことです。「不特定多数のユーザーの一人」なのか「特定ユーザー」なのかどちらの立場を選択するかだけのことです。


CC BY-SA 3.0
2017-09-25T12:52:49.467
38177
2017-09-25T12:52:49.467
5793
38165
answer