HTTP / HTTPS
HyperText Transfer Protocol / HyperText Transfer Protocol Secure
概要(サマリー)
WebサイトやWebアプリで、ブラウザとサーバーがデータをやり取りするときの通信ルールのこと。
普段ブラウザでURLを見るときに先頭についている http:// や https:// がこれにあたる。
特に HTTPS は、HTTP に暗号化の仕組みを加えたもので、通信内容が途中でのぞき見や改ざんをされにくくなる。
現在のWebサイトでは https:// が基本であり、ログイン、フォーム送信、決済、API通信などでは特に重要である。
一方、http:// は暗号化されていない通信であるため、現在では公開サイトで使う場面はかなり限られる。
初心者向けにはまず、今のWebでは HTTPS が標準 と覚えておくとよい。
詳細解説
HTTP / HTTPS とは、ブラウザとサーバーがWeb上でデータをやり取りするときの通信ルールである。
ここでいう「ルール」とは、「どういう形式でリクエストを送り、どういう形式でレスポンスを返すか」を決める約束事のことである。
たとえば、ブラウザでURLを開くとき、裏側では
- ブラウザがサーバーへ「このページをください」とお願いする
- サーバーがHTMLや画像、CSS、JavaScriptなどを返す
というやり取りが行われている。
このやり取りの基本ルールが HTTP であり、そこに暗号化の仕組みを加えたものが HTTPS である。
HTTPとは何か
HTTP は HyperText Transfer Protocol の略である。
初心者向けには、まず
Webページをやり取りするための通信ルール
と考えれば十分である。
昔からWebサイトを見るための基本ルールとして使われてきた。
ただし、HTTP のままでは通信内容が暗号化されないため、現在のWebでは安全面の問題が大きい。
HTTPSとは何か
HTTPS は HyperText Transfer Protocol Secure の略である。
つまり、HTTP に Secure(安全) の仕組みを加えたものだと考えるとわかりやすい。
この「安全」とは、主に次のような意味がある。
- 通信内容を暗号化する
- 途中でのぞき見されにくくする
- 通信内容を改ざんされにくくする
- 接続先が本物か確認しやすくする
そのため、現代では Webサイトや Webアプリの公開において HTTPS が基本になっている。
HTTPとHTTPSの違い
初心者向けに最も大事なのは、この違いである。
HTTP
- 通信内容が暗号化されない
- 途中で見られるリスクがある
- 現在では公開サイトでは基本的に不向き
HTTPS
- 通信内容が暗号化される
- 途中で見られたり改ざんされたりしにくい
- 現代のWebの標準
つまり、
- HTTP = そのままの通信
- HTTPS = 守られた通信
という違いで考えるとわかりやすい。
どんなイメージで考えればよいか
初心者向けには、次のようなたとえがわかりやすい。
ハガキと封筒
HTTP はハガキのようなもので、途中で内容を見られやすい。
HTTPS は封筒に入れた手紙のようなもので、中身を見られにくい。
鍵なし会話と暗号化会話
HTTP はそのまま大声で会話しているようなもの。
HTTPS は、特別な鍵付きの方法でやり取りしているようなものである。
透明な配管と見えない配管
HTTP は中身が見えやすい配管、HTTPS は中身が分かりにくい安全な配管というイメージでもよい。
ブラウザで見るとどう分かるのか
多くのブラウザでは、HTTPS のサイトには鍵マークが出たり、https:// で始まっていたりする。
一方、HTTP のサイトでは「保護されていない通信」などの警告が出ることもある。
ただし、鍵マークは主に通信が暗号化されていることを示すもので、サイトの中身や運営者が必ず安全だと保証するものではない。
つまりブラウザは、ユーザーに対して
- このサイトは安全寄りか
- 通信が暗号化されているか
を分かるように見せてくれていることが多い。
なぜ暗号化が重要なのか
もし通信が暗号化されていないと、たとえば次のような情報が途中で見られる危険がある。
- ログイン情報
- 問い合わせ内容
- フォーム入力内容
- 検索内容
- Cookie の一部
- 個人情報
特にログイン、決済、会員登録、管理画面などでは、暗号化されていない通信は非常に危険である。
そのため、現在では「HTTPS であること」がほぼ前提になっている。
HTTPSとSSL/TLSの関係
HTTPS を説明するときに、SSL や TLS という言葉もよく出てくる。
初心者向けには、次のように考えると分かりやすい。
- HTTPS = 安全な通信方式全体の名前
- SSL/TLS = その安全性を支える暗号化の仕組み
昔は SSL という言い方がよく使われ、今でも「SSL証明書」という言い方が残っていることが多い。
実際には現在は TLS が中心だが、初心者向けにはまず
HTTPS を成立させるための証明書や暗号技術がある
くらいの理解で十分である。
SSL証明書とは何か
HTTPS を使うには、通常 SSL証明書 と呼ばれるものが必要になる。
一般にはSSL証明書と呼ばれることが多いが、現在の実態としてはTLSで使われる証明書である。
これは、そのサイトが「本物の接続先である」と示したり、暗号化通信を成立させたりするための証明書である。
たとえば、独自ドメインでサイトを公開するときは、
- ドメインを取得する
- DNSを設定する
- サーバーへ配置する
- SSL証明書を入れて HTTPS 化する
という流れになることが多い。
HTTPはもう使わないのか
基本的には、公開サイトでは HTTPS が推奨される。
ただし、HTTP という仕組み自体が完全に消えたわけではない。
たとえば、
- ローカル開発環境
- 一部のテスト環境
- 古い機器や古い構成
では HTTP を見ることもある。
しかし、一般公開するWebサイトやWebアプリでは、HTTPS前提で考えるのが基本である。
APIでもHTTP / HTTPSは重要
HTTP / HTTPS は、Webページを見るときだけでなく、API通信でも非常に重要である。
たとえば、
- ブラウザからAPIへリクエストを送る
- アプリから外部サービスAPIを呼ぶ
- AI API に文章を送る
といった場面でも、多くは HTTPS が使われる。
つまり HTTP / HTTPS は、
Webページ表示だけでなく、Web上のあらゆるやり取りの基礎
なのである。
HTTPリクエストとレスポンス
HTTP では、基本的に次の流れでやり取りする。
リクエスト
ブラウザやアプリがサーバーへお願いを送る。
レスポンス
サーバーが結果を返す。
たとえばブラウザが
- 「このURLのページをください」
とリクエストし、サーバーが
- HTML
- CSS
- JavaScript
- JSONデータ
などを返す。
この基本のやり取りは HTTP / HTTPS の上で行われている。
フロントエンドとバックエンドとの関係
HTTP / HTTPS は、フロントエンドとバックエンドをつなぐ土台でもある。
- ブラウザから画面表示を取得する
- フォーム送信をする
- API通信をする
- ログイン処理をする
といったことは、多くの場合 HTTP / HTTPS の通信の上で行われている。
そのため、フロントエンドやバックエンドを学ぶと、HTTP / HTTPS の考え方が何度も出てくる。
AI時代に重要な理由
AI時代では、Webアプリ、API、外部サービス連携を作る機会が増えている。
その中で HTTP / HTTPS の理解がないと、
- APIのURLの意味が分かりにくい
- ローカルでは動くのに本番で警告が出る理由が分からない
- 独自ドメイン公開時の HTTPS 化が理解しにくい
- 安全な通信がなぜ必要かが分からない
といった問題が起きやすい。
特に、公開サイトやAPIを扱うなら、HTTPS はほぼ必須の前提知識である。
初心者向けの理解の仕方
初心者はまず、HTTP / HTTPS を次のように覚えるとよい。
- Web上でやり取りするときの通信ルール
- HTTPS は HTTP を安全にしたもの
- 今の公開サイトは HTTPS が基本
- WebページだけでなくAPI通信でも重要
この4点が分かれば、基本イメージは十分つかめる。
よくある勘違い
HTTP と HTTPS はURLの飾り?
違う。
見た目の違いではなく、通信の安全性に大きな差がある。
HTTPSなら100%安全?
かなり安全性は高まるが、それだけでサイト全体の安全が完全保証されるわけではない。
ただし、通信の暗号化としては非常に重要である。
HTTPのサイトは全部危険?
内容によってはすぐに致命的とは限らないが、暗号化されていない時点で現代の公開サイトとしては望ましくない。
特に入力フォームやログインがあるサイトでは避けるべきである。
HTTPSにすれば検索順位だけの問題?
検索面の利点もあるが、本質は通信の安全性にある。
HTTP / HTTPS はWebページを見るときだけの話?
そうではない。
API通信やWebアプリのデータ送受信でも非常に重要である。
より詳しくAIに聞いてみよう
- HTTPとHTTPSの違いを、中学生でもわかるように説明してください。
- HTTPSで通信が安全になる理由をやさしく教えてください。
- SSL証明書とは何か、HTTPSとの関係も含めて説明してください。
- API通信でHTTP / HTTPSがどう使われるのか説明してください。
- 独自ドメインのサイトをHTTPS化する流れを初心者向けに教えてください。