HTTPとHTTPSの違いとは?初心者向けに仕組みとポート番号まで解説

インターネットのしくみ

Webサイトを見ていると、アドレスバーに鍵マークが表示されたり、URLが「https://」から始まっていたりすることがあります。

なんとなく「安全そう」というイメージはあっても、HTTPとHTTPSで何が違うのか、なぜ鍵マークが表示されるのかまでは分かりにくいですよね。

この記事では、HTTPとHTTPSの違い、TLSによる保護の基本、80番ポートと443番ポートの役割、Firewallとの関係まで、ネットワーク初心者向けに整理します。

Web通信の全体像から知りたい方は、「インターネットの仕組み」を解説した記事とあわせて読むと理解しやすくなります。

HTTPとHTTPSの違いを一言でいうと

HTTPとHTTPSの違いは、Web通信をそのまま送るか、TLSで保護して送るかです。

HTTPは、WebブラウザとWebサーバーの間でWebページの情報をやり取りするための基本ルールです。

ブラウザが「このページをください」とリクエストを送り、サーバーがHTMLや画像などのデータをレスポンスとして返します。

HTTPSは、このHTTP通信をTLSで保護したものです。

HTTPを別の仕組みに置き換えるのではなく、HTTPのやり取りを暗号化された通信路の中で行う、と考えると分かりやすいです。

たとえるなら、HTTPは中身が見えるハガキ、HTTPSは鍵付きの封筒で送る通信です。

項目HTTPHTTPS
通信の保護なしTLSで保護
主なポート番号80番443番
URLの始まりhttp://https://
ブラウザの鍵マーク基本的になし表示される
盗み見への強さ弱い強い
主な用途検証環境、古いサイトなど現在のWeb通信の主流

初心者のうちは、まず「HTTPはそのまま送る通信」「HTTPSはTLSで保護して送る通信」と押さえておけば大丈夫です。

HTTPとHTTPSの違いを比較した図解

HTTPとは?Webページをやり取りする基本ルール

HTTPは、正式にはHypertext Transfer Protocolと呼ばれます。

WebブラウザとWebサーバーが、Webページの情報をやり取りするための通信ルールです。

Webページを見るとき、ブラウザはWebサーバーに「このページをください」と要求を送ります。

この要求をHTTPリクエストといいます。

リクエストを受け取ったWebサーバーは、必要なデータをブラウザへ返します。

この返答をHTTPレスポンスといいます。

Webページは、HTMLだけでなく、画像、CSS、JavaScriptなど複数のデータで構成されることが多いです。

ブラウザは必要なデータをリクエストし、Webサーバーはそれぞれをレスポンスとして返します。

ただし、HTTP単体には通信内容を暗号化する役割はありません。

ブラウザからサーバーへ送る内容も、サーバーから返ってくる内容も、そのままの形で通信経路を流れます。

そのため、HTTPのままログインID、パスワード、個人情報などを送るのは危険です。

通信経路上でパケットを見られる立場にいる第三者に、内容を読まれる可能性があるためです。

通常、HTTPはTCPの80番ポートを使います。

80番ポートは、WebサーバーがHTTP通信を受け取るための代表的な入口です。

HTTPは仕組みとして悪いものではありません。

ただし、重要な情報を送る用途には向いていません。

HTTPSとは?TLSで保護されたHTTP通信

HTTPSは、HTTPの通信をTLSで保護したWeb通信です。

TLSとは、通信内容を暗号化し、改ざんされにくくし、接続先のサーバーを確認するための仕組みです。

昔はSSLという言葉もよく使われていたため、現在でも「SSL証明書」「SSL/TLS」と呼ばれることがありますが、現在の安全なWeb通信では主にTLSが使われます。

HTTPSでは、ブラウザとWebサーバーが通信を始める前に、TLSで安全な通信路を作ります。

その中でHTTPリクエストやHTTPレスポンスをやり取りします。

URLが「https://」で始まるWebサイトでは、通常HTTPSが使われています。

従来のHTTPS、特にHTTP/1.1やHTTP/2では、通常TCPの443番ポートを使います。

初心者の段階では、まず「HTTPSはHTTPのやり取りをTLSで保護する仕組み」「HTTPSでは443番ポートがよく使われる」と理解しておけば十分です。

TLSで守られる3つのこと

TLSで守られる主なポイントは、次の3つです。

  • 暗号化
  • 改ざん検知
  • サーバー認証

暗号化とは、通信内容をそのまま読めない形に変えることです。

HTTPSではTLSによって通信内容が暗号化されるため、途中で盗み見されても内容を理解されにくくなります。

改ざん検知とは、通信の途中で内容が書き換えられた場合に気づきやすくする仕組みです。

TLSでは、通信データが途中で不正に変更されていないかを確認できます。

サーバー認証とは、接続しようとしているWebサイトが、そのドメインに対して正しい証明書を持っているかを確認することです。

この確認には、サーバー証明書が使われます。

ブラウザは、接続先のドメイン名と証明書の内容が合っているか、証明書が信頼できる認証局から発行されているか、有効期限が切れていないかなどを確認します。

これにより、利用者が意図したドメインへ接続しているかを確認しやすくなります。

ただし、これは「そのドメインへの通信がTLSで保護されている」ことを確認する仕組みです。

サイトの内容、運営者の信頼性、入力フォームの安全性まで完全に保証するものではありません。

鍵マークは「絶対安全」の保証ではない

ブラウザの鍵マークは、主に「ブラウザとWebサーバーの間の通信がTLSで保護されている」ことを示します。

通信内容が暗号化され、途中で読まれたり書き換えられたりしにくい状態です。

ログイン画面や問い合わせフォームでHTTPSが使われていることは、とても重要です。

ただし、鍵マークがあるからといって、そのサイトが絶対安全という意味ではありません。

フィッシングサイトでもHTTPS化されている場合があります。

攻撃者が本物そっくりの偽サイトを作り、その偽サイトのドメインに対して正規の証明書を設定すれば、ブラウザには鍵マークが表示されることがあります。

HTTPSは、あくまで通信経路を守るための仕組みです。

サイト運営者が信頼できるか、ページの内容が正しいか、入力フォームが安全に管理されているかまでは保証しません。

そのため、鍵マークだけで判断せず、URLが正しいか、不自然な日本語がないか、怪しい入力欄がないか、アクセス元のメールやリンクが信頼できるかも確認しましょう。

80番ポートと443番ポートの違い

HTTPとHTTPSの違いを理解するときは、ポート番号もあわせて押さえておくと分かりやすくなります。

ポート番号とは、同じIPアドレスの中で、どのアプリケーションに通信を届けるかを示す番号です。

IPアドレスが建物の住所だとすると、ポート番号はその建物の受付窓口のようなものです。

同じサーバーの中でWebサーバー、メールサーバー、管理用サービスなど複数のサービスが動いている場合、ポート番号によって通信の届け先を分けます。

Web通信では、HTTPは80番ポート、HTTPSは443番ポートを使うのが一般的です。

たとえば、「http://example.com」にアクセスした場合、ブラウザは基本的に80番ポートへ接続します。

一方、「https://example.com」にアクセスした場合は、基本的に443番ポートへ接続します。

URLにポート番号を書いていなくても、ブラウザが自動的に判断します。

つまり、「https://example.com」は内部的には「https://example.com:443」にアクセスしているようなイメージです。

ただし、これは標準的によく使われる番号です。

設定によっては、「https://example.com:8443」のように別のポート番号でHTTPSを待ち受けることもあります。

80番ポートと443番ポートの違いを示した図解

443番ポートが閉じているとHTTPSは使えない

HTTPSを使うには、サーバー側で443番ポートが待ち受けている必要があります。

待ち受けているとは、Webサーバーソフトウェアが「443番ポートに来た通信を受け取ります」と準備している状態です。

サーバー側で443番ポートが待ち受けていない場合、ブラウザからHTTPSで接続しようとしても失敗します。

また、Webサーバー側では待ち受けていても、Firewallで443番ポートがブロックされていると、外部からWebサイトを開くことはできません。

実務でよくあるのが、「pingは通るのにWebサイトが開けない」というケースです。

pingは主にICMPという仕組みを使う通信です。一方、従来のHTTPSは主にTCPの443番ポートを使う通信です。

つまり、pingとHTTPSは別の通信として扱われます。

そのため、pingが通るからといって、HTTPSも通るとは限りません。

サーバーのIPアドレスには届いていても、443番ポートが閉じていたり、Firewallでブロックされていたりすれば、HTTPS接続は失敗します。

HTTPS通信が行われる流れ

HTTPS通信では、ブラウザがいきなりWebページの中身を受け取るわけではありません。裏側では、次の手順を順番に進めています。

  1. URLを入力する
  2. DNSでドメイン名からIPアドレスを調べる
  3. Webサーバーの443番ポートへ接続する
  4. TLSで安全な通信路を作る
  5. その中でHTTPリクエストとHTTPレスポンスをやり取りする

DNSとは、ドメイン名からIPアドレスを調べる仕組みです。ドメイン名がお店の名前、IPアドレスが実際の住所だと考えると分かりやすいです。

DNSでIPアドレスが分からないと、ブラウザはWebサーバーの場所を特定できません。

実務でも、Webサイトが開けない原因がHTTPSやFirewallではなく、DNSの設定ミスだったというケースがあります。

DNSでIPアドレスが分かったら、ブラウザはそのIPアドレスを持つWebサーバーへ接続します。HTTP/1.1やHTTP/2のHTTPS通信では、多くの場合TCPの443番ポートへ接続します。

TCPとは、相手と接続を作ってからデータをやり取りする通信方式です。

電話をかけて相手とつながってから会話を始めるようなものです。

443番ポートへの接続ができたら、次にTLSで安全な通信路を作ります。

この中でブラウザはサーバー証明書を確認し、通信内容を暗号化するための準備を行います。

TLSによる安全な通信路ができると、その中でHTTPリクエストとHTTPレスポンスが流れます。

つまり、HTTPSの中身は「TLSで守られたHTTP通信」です。

DNSの仕組みを詳しく知りたい場合は「DNSとは」、TCPとUDPの違いを知りたい場合は「TCPとUDPの違い」を解説した記事へ内部リンクを入れると、理解がつながりやすくなります。

HTTPS通信が行われる流れを示した図解

現場でよくある勘違いとトラブル例

HTTPとHTTPSの仕組みは、現場のトラブル対応でもよく出てきます。特に多いのが、次のようなケースです。

  • pingは通るのにWebサイトが開けない
  • DNSは引けているのにHTTPS接続できない
  • サーバーを公開したのに外部からアクセスできない

HTTPS通信では、DNS、443番ポート、TLS、HTTPのやり取りなど、複数の仕組みが順番に関係します。そのため、どこで止まっているのかを分けて考えることが大切です。

「pingが通る=Webも開ける」ではない

pingは、相手のIPアドレスに対して簡単な到達確認をするための通信です。

建物の前まで行けるかを確認するようなもので、目的の受付窓口が開いているかまでは分かりません。

HTTPSでWebサイトを開くには、DNSで名前解決ができ、443番ポートへ接続でき、TLSで安全な通信路を作り、その上でHTTPのやり取りができる必要があります。

そのため、pingが通るのは「相手のIPアドレスまで届いている可能性がある」という確認にすぎません。

Web通信まで正常とは限らないため、障害調査ではpingだけで判断しないことが大切です。

FirewallでHTTPS通信が止まることがある

Firewallとは、通信を許可するか拒否するかを判断する仕組みです。

送信元IP、宛先IP、ポート番号、通信方向などを見て、通してよい通信かどうかを判断します。

HTTP/1.1やHTTP/2のHTTPSでは、主にTCPの443番ポートが関係します。

Firewallで443番ポートが許可されていなければ、HTTPS通信は通りません。

たとえば、サーバー側でWebサーバーが正しく動いていても、クラウドのセキュリティグループや社内Firewallで443番ポートが拒否されていると、ブラウザからWebサイトを開けません。

また、社内ネットワークでは、プロキシやSSL/TLS検査が影響する場合もあります。

プロキシとは、利用者の代わりにWebアクセスを中継する仕組みです。

SSL/TLS検査では、セキュリティ対策のためにHTTPS通信の中身を確認する構成(SSL/TLSインスペクション)が使われることがあります。

この設定や証明書の問題により、特定のサイトだけ開けないケースもあります。

サーバー公開時はNAT/NAPTやポート転送も関係する

自宅や社内LANの内側にあるサーバーを外部へ公開する場合は、NAT/NAPTやポート転送も関係します。

NAT/NAPTとは、内側のネットワークで使っているIPアドレスと、インターネット側で使うIPアドレスを変換する仕組みです。

会社の代表電話にかかってきた電話を、内線番号に振り分けるようなものです。

外部からHTTPSでアクセスさせるには、インターネット側に届いた443番ポート宛ての通信を、LAN内のWebサーバーへ転送する必要がある場合があります。

これをポート転送と呼ぶことがあります。

一般的なWeb閲覧であれば、まずはDNS、443番ポート、Firewallを確認すれば十分なことが多いです。

サーバーを外部公開する場面になったら、NAT/NAPTやポート転送も確認対象に加えると考えると整理しやすくなります。

HTTPSでWebサイトが開けないときは、次の順番で確認すると切り分けやすくなります。

  1. DNSで名前解決できているか
  2. Webサーバーの443番ポートへ接続できるか
  3. Firewallやプロキシで止められていないか
  4. 証明書エラーやTLS関連の警告が出ていないか
  5. Webサーバー側でHTTPSの待ち受けが有効になっているか

特に実務では、「pingは通る」「DNSも引ける」「でも443番ポートに接続できない」のように、どこまで確認できたかを言語化して伝えることが大切です。

補足:HTTP/3やQUICでは少し考え方が変わる

従来のHTTPS通信、特にHTTP/1.1やHTTP/2では、主にTCPの443番ポートを使います。

ただし、HTTP/3ではQUICというUDPベースの仕組みが使われます。

そのため、厳密には「HTTPSは必ずTCPだけ」とは言い切れません。

また、HTTP/3ではQUICの中にTLS 1.3の仕組みが組み込まれています。

従来のように「TCPの上でTLS、その上でHTTP」という構成とは少し異なります。

とはいえ、初心者の段階では深く考えすぎなくて大丈夫です。

まずは、HTTPは主に80番ポート、HTTPSは主に443番ポートを使うこと。

そして、HTTPSはTLSでHTTPの通信を保護する仕組みだと理解しておきましょう。

HTTP/3やQUICは、TCPとUDPの違いを理解してから学ぶと整理しやすくなります。

まとめ

HTTPとHTTPSの大きな違いは、Webページの情報を安全にやり取りできるかどうかです。

HTTPは、ブラウザとWebサーバーがWebページをやり取りするための基本ルールです。

ただし、HTTP単体には通信内容を暗号化する役割はありません。

HTTPSは、このHTTP通信をTLSで保護したものです。

TLSによって通信内容を暗号化し、改ざんに気づきやすくし、サーバー証明書を使って接続先を確認します。

また、HTTPは主に80番ポート、HTTPSは主に443番ポートを使います。

HTTP/1.1やHTTP/2のHTTPSでは主にTCPの443番ポートが使われ、HTTP/3ではQUICによりUDPの443番ポートが使われることもあります。

そのため、pingが通っていても、443番ポートが閉じていたり、Firewallで止められていたりすると、HTTPS通信は失敗します。

ただし、HTTPSは「絶対安全」を保証する仕組みではありません。

HTTPSが守るのは、主にブラウザとWebサーバーの間の通信経路です。

鍵マークが表示されていても、偽サイトや不正な入力フォームまで自動的に見分けてくれるわけではありません。

最後に、この記事で覚えてほしいポイントを3つにまとめます。

  • HTTPはWebページをやり取りするための基本ルール
  • HTTPSはHTTPをTLSで保護した通信
  • HTTPSは主に443番ポートを使うため、Firewallやポート番号の理解も重要

80番・443番の意味をもう少し詳しく知りたい場合は「ポート番号とは」、Web通信の土台を知りたい場合は「TCPとUDPの違い」や「DNSとは」を読むと理解が深まります。

実際のトラブル対応では、「pingは通るのにWebが開けない」ケースもよくあります。

通信がどこで止まっているかを切り分けたい場合は、関連記事もあわせて確認してみてください。