HTTPSプロトコルは、安全な通信を提供するHTTP(Hyper Text Transfer Protocol)の拡張です。
設計上、HTTPは安全ではありません。
ブラウザを開いてWebサーバーにWebページを送信するように要求すると、データは2つのトリップを実行します。1つはブラウザからWebサーバーへ、もう1つはWebサーバーからブラウザへのトリップです。
次に、Webページのコンテンツによっては、CSSファイル、JavaScriptファイル、画像などを取得するために、より多くの接続が必要になる場合があります。
これらの接続中に、データが通過するネットワークは次のようになります。検査済みそして操作された。
結果は深刻になる可能性があります。すべてのネットワークアクティビティが監視およびログに記録される可能性があります。サードパーティによって、それが存在することにさえ気づいていません。一部のネットワーク広告を挿入する可能性があります、および中間者攻撃の対象となる可能性があります。これは、攻撃者がデータを操作したり、ネットワークを介してコンピュータになりすましたりする可能性があるセキュリティ脅威です。パブリックで暗号化されていないWi-Fiネットワークを介して送信されるHTTPパケットを誰かが聞くのは非常に簡単です。
HTTPSは、根本的な問題を解決することを目的としています。ブラウザとWebサーバー間の通信全体が暗号化されています。
プライバシーとセキュリティは、今日のインターネットの主要な関心事です。数年前は、ログインで保護されたページで暗号化された接続を使用するだけで、またはeコマースのチェックアウト中に逃げることができました。また、SSL証明書の価格設定と複雑さのために、ほとんどのWebサイトはHTTPを使用していました。
今日、HTTPSはどのサイトでも必須です。現在、Web全体の50%以上がそれを使用しています。 Google Chromeは最近、すべてのWebサイトでHTTPSを必須(および強制)にする正当な理由を示すために、HTTPサイトを安全でないものとしてマークし始めました。
HTTPを使用する場合のデフォルトのサーバーポートは80で、HTTPSの場合は443です。もちろん、サーバーがデフォルトのポートを使用する場合は、明示的に追加する必要はありません。
HTTPSは時々呼ばれることもありますHTTP over SSL、またはHTTP over TLS。
2つの違いは単純です。TLSはSSLの後継です。
HTTPSを使用する場合、暗号化されないのはWebサーバードメインとサーバーポートだけです。
リソースパス、ヘッダー、Cookie、クエリパラメータなど、その他すべての情報はすべて暗号化されています。
TLSプロトコルが内部でどのように機能するかを分析する詳細については説明しませんが、かなりの量が追加されていると思われるかもしれません。オーバーヘッド、そしてあなたは正しいでしょう。
ネットワークリソースの処理に追加される計算は、クライアント、サーバー、および送信パケットサイズの両方でオーバーヘッドを引き起こします。
ただし、HTTPSでは最新のプロトコルを使用できますHTTP/2、これはHTTP /1.1よりも大きな利点があります。はるかに高速です。
どうして?多くの理由があります。1つはヘッダー圧縮、もう1つはリソースの多重化です。 1つはサーバープッシュです。1つのリソースが要求されると、サーバーはより多くのリソースをプッシュできます。したがって、ブラウザがページを要求すると、必要なすべてのリソース(画像、CSS、JS)も受け取ります。
詳細はさておき、HTTP / 2はHTTP / 1.1よりも大幅に改善されていますそしてそれはHTTPSを必要とします。つまり、HTTPSは、暗号化のオーバーヘッドがあるにもかかわらず、最新のセットアップで適切に構成されている場合、HTTPよりもはるかに高速です。
その他のネットワークチュートリアル:
- WebSocketの概要
- HTTPリクエストのしくみ
- HTTPリクエストヘッダーリスト
- HTTP応答ヘッダーリスト
- HTTPとHTTPS
- RFCとは何ですか?
- HTTPプロトコル
- HTTPSプロトコル
- HTTPリクエストのカールガイド
- HTTPでのキャッシュ
- HTTPステータスコードリスト
- CDNとは何ですか?
- HTTP / 2プロトコル
- ポートとは
- DNS、ドメインネームシステム
- TCPプロトコル
- UDPプロトコル
- RESTAPIの概要
- macOSにローカルSSL証明書をインストールする方法
- ローカルSSL証明書を生成する方法
- HTTPS用にNginxを構成する方法
- サブフォルダーから複数のNode.jsアプリを提供するためのシンプルなnginxリバースプロキシ
- リバースプロキシとは何ですか?