“http/https”とは?~だいたい伝わるIT用語解説
何気なく見ているインターネットのウェブページですが、アドレス部分を見ると必ず「https」、あるいは稀に「http」で始まっています。
なんとなく聞いたことはあるけど意味は分からない、このhttp/httpsについて解説してみたいと思います。
ぶっちゃけ、URLの通りにアドレスを入力すればウェブページは表示できるので、別に気にしないという人がほとんどだと思いますが…
“http”は決め事
まず”http”について。
“http”は「Hyper Text Transfer Protocol」の略で、インターネット上でウェブページの情報(Hyper Text)をやり取り(Transfer)するための決め事(Protocol)です。
ハイパーテキストについては下記の記事で触れていますので、何だろう?と思った方は参考にしてください。
なお、コンピュータ関連の用語で出てくるProtocolという単語は(ちょっと堅苦しいですが)「通信規約」といった意味合いです。
通信規約とは?
例えば、ファストフード店で食事をしようとした時にも、ある一定の決め事があります。
- 注文カウンターに行く
- 店内で食べるか、テイクアウトするかを告げる
- 食べたい商品を注文する
- 代金を支払う
- 出来上がった商品を受け取る
概ね上記のような手順・やり取りがあると思います。
いきなり「おなかが空いた!」といってお金を出すような人はいませんし、いたとしても店員さんも困ってしまいます。そして当然ながら、そんなやり取りでは「空腹を解消するために食事をする」という目的が達成されることはないでしょう。
食事をするにあたっても上記のような決め事があるように、コンピューター同士でのやり取りでもやはり一定の決め事が必要です。
しかも人間のように曖昧な表現でのやり取りができない分、より一層、厳密な決め事が必要になります。
そのため、コンピューター同士でやり取り(通信)するための決め事(規約)には様々な種類があり、そのうちの一つがhttpというわけです。
以上を踏まえて、ウェブページの情報のやり取りについて、もう少し具体的に説明します。
ウェブページを表示する仕組み
多くの人が日常的に、PCやスマホでインターネット上のウェブページ(このページだってそうです)を見ていると思いますが、その裏にはウェブサーバー(Web Server)というウェブページの情報を提供する仕組みや、提供された情報を表示するためのブラウザ(Browser)アプリがあります。
大まかな流れとしては…
ブラウザのアドレスバーにURLを入力することで、見たいページを持っているウェブサーバーに「情報をください」という要求(リクエスト)を送信する。
○○○にある/event/today/の情報が欲しいな。
(http://○○○/event/today/にアクセス)
>http通信でのリクエストを送信
ウェブサーバーは、URLから要求されている内容を判断して、ウェブページの情報(レスポンス)を送り返す。
はいはい、こちら○○○のウェブサーバーです。
>http通信でのリクエストを受信
では、”event”の中の”today”の情報を送りますね。
>http通信でのレスポンスを送信
PCやスマホ内にあるブラウザアプリが、ウェブサーバーから送り返された情報を受け取って表示する。
情報を受け取ったので、ブラウザで見てみよう!
>http通信でのレスポンスを受信
といったやり取りが、ウェブページを表示しようとするたびに発生しています。
この時、URLの最初に”http”を記載していることで「httpで決まっているルールに則って通信を行いますよ」ということを宣言しています。
逆に言うと、この記載がなければ、ウェブサーバーは何を要求されているか理解することができませんし、そうなれば情報を提供することもできません。(そもそもウェブサーバーにすら辿り着けない可能性のほうが高いでしょうし。)
じゃあ”https”は?
httpは通信のための決め事ではありますが、安全かどうか?という観点で見ると残念ながら十分ではありません。通信内容が横取りされれば、その内容は暗号化されていない平文のため、簡単に盗み見ることができてしまいます。
そこで使われる通信方式が”https”です。なお、”https”は厳密には通信規約ではなく、http通信を安全に(Secure)行うための仕組みのことを言います。
httpとはたった1文字の違いですが、この違いは大きく、一般公開されているウェブサイトでhttpsに対応していないページは、残念ながら「安全への意識が低い」「怪しい」「危ない」と評価されるといっても過言ではありません。
httpsの適用
httpsを適用するには、もちろんただURLを変えればいいわけというではありません。
先ほど”https”は「Secure」と説明しましたが、「HTTP over SSL/TLS」の略ともいわれ、SSL/TLSによる暗号化適用を表しています。
そして暗号化した通信に対応し、通信先サーバーが安全であることを第三者機関により証明するための「SSLサーバー証明書」を設定します。
上記のような手続きを経ることにより、ウェブサイトの運営者は安全な通信を確保することができます。
https適用の見分け方
ではウェブサイトの利用者としては、httpsが適用されているウェブサイトをどうやって見分ければよいでしょうか?
ブラウザのアドレスバーを見ると、下記のように鍵マークがついています。これがhttpsが適用されている状態となります。
一方、httpが適用されていない場合は鍵マークが表示されず(空いている鍵が表示されることもあります)、「このサイトへの接続は保護されません」や「安全ではありません」といった表示がされます。
鍵マークがある場合は、鍵マークをクリックすると証明書の情報が表示されますので、何か怪しいな?と思ったら証明書の内容も確認してみましょう。
安全のことを考えれば、いくら用心しても、し過ぎるということはありませんよ!
以上、http/httpsについて大まかに解説しました。
知らなくてもウェブサイトの閲覧はできると思いますが、知ることでウェブ利用時の安全性についても意識してもらえたらと思います。