質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Q&A

解決済

3回答

43624閲覧

SSHとHTTPの違いは何でしょうか

RM_4

総合スコア85

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

1グッド

1クリップ

投稿2016/01/31 04:07

SSHとHTTPの違いは何でしょうか。

SSHは外からの接続要求に応じるもので、HTTPも外と繋げるものだと思うのですが、
違いがわかりません。

どうかアドレスいただきたいです。

ikore908👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

HTTPはテキストデータ(主にWebサイト)のやり取りに使われます。
テキストデータをそのまま送るので、傍聴されたら丸見えです。

SSHはセキュアシェルの略で、暗号化通信ですので安全に通信できます。
ただ、SSHは主にコマンドでリモートサーバーに入るために使われますので、HTTPとはあまり関連はありませんね。

HTTPに対応する暗号化はSSLじゃないでしょうか。
SSLはセキュアソケットレイヤーの略で、Webアクセスを暗号化します。

投稿2016/01/31 04:23

thom.jp

総合スコア686

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RM_4

2016/01/31 04:38

また解答をくださってありがとうございます。 今教えてもらってもう一つ聞きたいことがうまれてしまったのですが、 Sshではテキストデータは送れないのでしょうか よろしければまたコメントいただきたいです。
thom.jp

2016/01/31 04:53

SSHはシェルの操作を安全に行う為のものです。シェルのコマンドはテキストデータなので、その意味ではテキストデータを送りますが、暗号化されます。 プロトコルが違うのでWebサイトとの通信にSSHが使われることは無いはずです。 プロトコルというのは、データをやりとりするルールのことです。 アプリケーション同士が通信する場合、どんなルールで通信するか決めておかないとやりとりが噛み合いません。 ブラウザとサーバーはHTTPというルールに基づいて通信するので、SSHでWebサーバーと通信することはできません。
guest

0

SSH も HTTPも プロトコルの名前です。
プロトコルというのは「通信手順」とも訳されますが、
特定の目的の通信を行うための決まりごとです。
有名なプロトコルには他にはファイル転送のための FTP や
メール転送のための SMTP などがあります。

通信回線を経由して通信を行うという点ではこれらは同じものです。
異なるのは通信によって提供しようとしている機能です。

またプロトコルには階層というものがあります。
良く聞く TCP/IP と呼ばれるものは、SSH や HTTP よりも下の階層にあって、
より下位の問題(データをパケットと呼ばれる単位に分割し、
複数の通信に共有されるイーサーネットケーブルによって構築されたLANと、
それらを接続するルータ等の中継点を複数経由して任意の相手に届くような形で送信し、
ハードウェア的なエラーが起きた場合に可能な限りフォーローするなど)
を扱っています。

「外と繋げる」という機能の基本的なところは TCP/IP で実現されています。
HTTP や SSH はそのようにして確立された通信経路において、
接続している通信相手(例えば、Webサーバだったり、ログインしたい他ホストだったり)と、
特定の目的(Webページの取得や、shell コマンド実行等)のために行うやりとりに関する取り決めです。

ちなみに、SSH は暗号化がからむのでちょっと面倒ですが、
HTTP は比較的容易に自分で使ってみることができます。
あなたが linux システムをお持ちなら、以下のようなコマンドを入力してみてください

bash

1$ nc www.google.com 80 2GET / HTTP/1.0 <-- これは手で入力します 3 <-- もう一度改行します 4HTTP/1.0 302 Found 5Cache-Control: private 6Content-Type: text/html; charset=UTF-8 7Location: http://www.google.co.jp/?gfe_rd=cr&ei=cLetVp_oGomg8wfGi4zYCQ 8Content-Length: 261 9Date: Sun, 31 Jan 2016 07:27:44 GMT 10Server: GFE/2.0 11 12<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> 13<TITLE>302 Moved</TITLE></HEAD><BODY> 14<H1>302 Moved</H1> 15The document has moved 16<A HREF="http://www.google.co.jp/?gfe_rd=cr&amp;ei=cLetVp_oGomg8wfGi4zYCQ">here</A>. 17</BODY></HTML>

上の操作は、ブラウザのURLバーに「http:://www.google.com/」と打ち込んだ場合にブラウザが行うことほぼ同じことをやっています。
ただし、現在のたいていのサイトでは色々こったことをしているものが大半のため、
残念ながらこの方法ではエラーページしか返ってきません。
それでも、ブラウザがサーバと何をやりとりしているかはだいたいわかると思います。

上の例で言うと、 最初にこちらから送信した 「GET / HTTP1.0」とそれに応答して
Webサーバが返してきた

HTTP

1HTTP/1.0 302 Found 2Cache-Control: private 3Content-Type: text/html; charset=UTF-8 4Location: http://www.google.co.jp/?gfe_rd=cr&ei=cLetVp_oGomg8wfGi4zYCQ 5Content-Length: 261 6Date: Sun, 31 Jan 2016 07:27:44 GMT 7Server: GFE/2.0

が、HTTP(に決められた規約に則った送受信内容)です。
その後に、HTML の本文が続いています。

投稿2016/01/31 07:38

kozuchi

総合スコア1193

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RM_4

2016/02/10 08:45

ありがとうございます
guest

0

まず、通信してデータのやり取りするという意味ではSSHもHTTPも同じです。
しかし、クライアントやサーバーが何を望んでいるのか…目的によって違います。

例えばWebサーバーは情報を全世界に向けて広く公開するのものですので、
基本的にクライアントは情報を下さい(GET)ということが目的です。
なのでそれに完全に特化したHTTP(とにかく簡潔にファイルを受信する)という通信規約を使います。

SSHはクライアントからコマンドを発行し、サーバーマシンでコマンドを実行し、サーバーマシンから実行結果を受信する所までがワンセットです。
公開鍵を使った暗号をやり取りする等セキュリティ面に強いのが特徴で、
SSHでの接続の仕組みを使ってファイルをダウンロード、アップロードすることも可能です。


SSHは見方によっては出来る事も多いのでHTTPの上位互換にも見えます。
じゃあHTTPなんて低機能のものなんて使わずに、
全部SSHでやってしまえばいいじゃんってなりませんか?

パソコンの世界では高機能なものは低速というジレンマがあります。
Webサイトはどんなしょぼいページでも画像の10や20個使ってます。

接続に時間の掛かるSSHでちまちまやり取りするより、
HTTPのような軽量な通信規約を使って次々とファイルのやり取りをした方が手間が掛からず速いのです。

目的を達成する必要最小限のものを使い分けるということが重要というわけです。

投稿2016/01/31 05:31

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RM_4

2016/02/10 08:46

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問