[解決済み】HTTPとHTTPSのパフォーマンス比較
質問
http と https でパフォーマンスに大きな違いはありますか? HTTPSはHTTPの5分の1の速度になると読んだように記憶しています。 これは、現世代のウェブサーバ/ブラウザで有効なのでしょうか? もしそうなら、それを裏付けるようなホワイトペーパーはあるのでしょうか?
どのように解決するのですか?
これには、とてもシンプルな答えがあります。 Webサーバーのパフォーマンスをプロファイリングして、特定の状況におけるパフォーマンス・ペナルティを確認します。 HTTPサーバーとHTTPSサーバーのパフォーマンスを比較するツールがいくつかあり(JMeterとVisual Studioが思い浮かびます)、非常に使いやすいものです。
がなければ、誰も意味のある答えを出すことはできません。 いくつか お客様のウェブサイトの性質、ハードウェア、ソフトウェア、およびネットワーク構成に関する情報。
他の方もおっしゃっているように、暗号化によるオーバーヘッドがある程度発生しますが、それは大きく左右されるものです。
- ハードウェア
- サーバーソフトウェア
- 動的コンテンツと静的コンテンツの比率
- クライアントからサーバーまでの距離
- 標準的なセッションの長さ
- など(個人的に好きです)
- クライアントのキャッシュ動作
私の経験では、動的コンテンツを多用するサーバーは、HTTPSによる影響が少ない傾向にあります。なぜなら、暗号化(SSLオーバーヘッド)にかかる時間は、コンテンツ生成時間に比べて重要でないからです。
メモリに簡単にキャッシュできる、かなり小さな静的ページのセットを提供することに重点を置いているサーバーは、はるかに高いオーバーヘッドに悩まされます(あるケースでは、イントラネットでスループットが大混乱に陥ったことがあります)。
編集部:他の方からも指摘があったのですが、SSLハンドシェイクがHTTPSの大きなコストになっているということです。その通りです。だからこそ、典型的なセッションの長さとクライアントのキャッシュ動作が重要なのです。
非常に短いセッションが多いということは、ハンドシェイク時間が他の性能要因を圧倒してしまうということです。長いセッションは、ハンドシェイクのコストがセッションの開始時に発生しますが、その後のリクエストは比較的低いオーバーヘッドになります。
クライアントキャッシュは、大規模なプロキシサーバーから個々のブラウザのキャッシュまで、いくつかのステップで行うことができます。一般的に、HTTPSコンテンツは共有キャッシュにキャッシュされません(ただし、少数のプロキシサーバーは中間者型の動作を悪用してこれを実現することができます)。多くのブラウザは HTTPS コンテンツを現在のセッションのためにキャッシュし、多くの場合、セッションをまたいでキャッ シュします。キャッシュしない、あるいはキャッシュが少ないということは、クライアントが同じコンテンツをより頻繁に取得することを意味します。この結果、同じ数のユーザーにサービスを提供するために、より多くのリクエストと帯域幅が必要になります。
関連
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み] application/x-www-form-urlencoded or multipart/form-data?
-
[解決済み] フィボナッチヒープを実際に効率よく実装した人はいますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜベクトル化、ループよりも一般的に速いのですか?
-
[解決済み】2つの範囲が重なっているかどうかをテストする最も効率的な方法は何ですか?
-
[解決済み】-depth 1でcloneを浅くし、コミットを作成し、再び更新をpullするのは安全ですか?
-
[解決済み】ウェブサイトのストレステストに最適な方法【重複あり
-
[解決済み】Webブラウザはhttpsでコンテンツをキャッシュするか?
-
[解決済み】なぜMATLABは行列の乗算が速いのか?
-
[解決済み] 3Dゲームってなんであんなに効率的なの?[クローズド]
-
[解決済み] gccのffast-mathは実際に何をするのですか?
-
[解決済み] SSLはどれくらいのオーバーヘッドを発生させるのですか?
-
[解決済み] あなたが見た中で最も馬鹿げたペシミゼーションは何ですか?[閉店]