HTTPとHTTPSのパフォーマンス


363

httpとhttpsのパフォーマンスに大きな違いはありますか?HTTPSはHTTPの5分の1の速度になる可能性があることを読んだことを思い出すようです。これは、現在の世代のWebサーバー/ブラウザで有効ですか?もしそうなら、それをサポートするホワイトペーパーはありますか?


1
また、現在ブラウザがHTTPSで使用する場合にのみサポートしているHTTP2も確認する必要があります。en.wikipedia.org/wiki/HTTP/2
Luca Steeb

1
https常に遅いhttp(またははるかに遅い)。
i486

透過的なキャッシングが発生している場合(Squidなど)、それは重要な場合があります。プロトコル自体、大きなオーバーヘッドはないと思います。
Rolf

回答:


231

これには非常に簡単な答えがあります。Webサーバーのパフォーマンスをプロファイルして、特定の状況でのパフォーマンスのペナルティを確認します。HTTPサーバーとHTTPSサーバーのパフォーマンスを比較するためのツールがいくつかあり(JMeterとVisual Studioが思い浮かびます)、それらは非常に使いやすいツールです。

誰もせずに、あなたに意味のある答えを与えることができ、いくつかのあなたのウェブサイト、ハードウェア、ソフトウェア、およびネットワーク構成の性質に関する情報。

他の人が言ったように、暗号化のためにある程度のオーバーヘッドが発生しますが、それは次のものに大きく依存しています。

  • ハードウェア
  • サーバーソフトウェア
  • 動的コンテンツと静的コンテンツの比率
  • サーバーまでのクライアント距離
  • 一般的なセッションの長さ
  • その他(私の個人的なお気に入り)
  • クライアントのキャッシング動作

私の経験では、動的コンテンツに負荷がかかるサーバーは、暗号化に費やされる時間(SSLオーバーヘッド)がコンテンツ生成時間に比べて重要ではないため、HTTPSによる影響が少ない傾向があります。

メモリに簡単にキャッシュできるかなり小さい静的ページのセットを提供することに負荷がかかるサーバーは、はるかに高いオーバーヘッドに悩まされます(1つのケースでは、スループットが「イントラネット」で処理されました)。

編集:SSLハンドシェイクがHTTPSの主要なコストであることは、他のいくつかによって提起された1つの点です。それが正しいので、「典型的なセッションの長さ」と「クライアントのキャッシング動作」が重要です。

多くの非常に短いセッションは、ハンドシェイク時間が他のパフォーマンス要因を圧倒することを意味します。セッションが長くなると、セッションの開始時にハンドシェイクのコストが発生しますが、後続のリクエストのオーバーヘッドは比較的低くなります。

クライアントのキャッシュは、大規模なプロキシサーバーから個々のブラウザーキャッシュまで、いくつかのステップで実行できます。一般に、HTTPSコンテンツは共有キャッシュにキャッシュされません(ただし、一部のプロキシサーバーは中間者タイプの動作を利用してこれを実現できます)。多くのブラウザは、現在のセッションのHTTPSコンテンツをキャッシュし、多くの場合、セッション間でキャッシュします。キャッシュしない、またはキャッシュが少ないという影響は、クライアントが同じコンテンツをより頻繁に取得することを意味します。これにより、同じ数のユーザーにサービスを提供するためのリクエストと帯域幅が増加します。


ジェームズ、あなたはこのASSLのソリューションの比較速度に簡単な解説を提供することができるかもしれない期待していた。assl.sullof.com/assl あなたの頭の上から、得られる性能ワイズものはありますか?ありがとう!
Matt Gardner、

PS:このソリューションにはクライアント側のキー(webkit / titaniumアプリの場合に実装できる)が必要であると私は理解しています。目標は、速度方程式のこのコンポーネントを、あなたが言及した他のコンポーネントと一緒に最大化することです。
Matt Gardner、

7
この投稿は実際には質問の答えにはなりません。Jim Geurtsは、特定の実装ではなく、HTTPおよびHTTPS自体のパフォーマンスの性質について質問しているようです。HTTPSはより多くの作業を行うため、明らかに低速です。だから問題は、どれくらい遅いのですか?変数を追加すると、さまざまな結果が得られることは誰もが知っています。
Elliot Cameron

74
この回答は、冒頭で多くの無関係な(つまり、間違った)ものについて言及しています。彼は、ある正しい答え、に到達するために5つの段落を取るHANDSHAKING
bobobobo 2013

2
HTTPSを介して提供されるコンテンツは、プロキシによってキャッシュさません。明示的にしないことで説明したように言われない限り、すべての近代的なブラウザでは、デフォルトでHTTPSコンテンツをキャッシュジェフ・アトウッド
JarekPrzygódzki

222

HTTPSは初期ハンドシェイクを必要とするため、非常に遅くなる可能性があります。ハンドシェイクの一部として転送される実際のデータ量はそれほど大きくありませんが(通常5 kB未満)、非常に小さなリクエストの場合、これはかなりのオーバーヘッドになる可能性があります。ただし、ハンドシェイクが完了すると、対称暗号化の非常に高速な形式が使用されるため、オーバーヘッドが最小限になります。結論:HTTPSを介して大量の短いリクエストを行うと、HTTPよりもかなり遅くなりますが、単一のリクエストで大量のデータを転送する場合、違いはわずかです。

ただし、キープアライブはHTTP / 1.1のデフォルトの動作なので、1つのハンドシェイクを実行してから、同じ接続を介して多数のリクエストを実行します。これは、HTTPSに大きな違いをもたらします。(他の人が提案したように)サイトをプロファイリングして確認する必要がありますが、パフォーマンスの違いは目立ちません。


19
ほとんどのブラウザは同じサーバーへの複数の接続を使用しているため、このハンドシェイクのコストは、セッションごとに少なくとも4〜10倍支払われることがわかりました。ブラウザのhttps-keep-aliveの長さによっては、セッション中に繰り返し発生する場合があります。
James Schek、2008年

6
HTTPキープアライブ機能に関しては、接続が持続的でない場合のシナリオを経験しました。リクエストごとに、リクエスト接続が構築され、ティアダウンされてMA-SSLハンドシェイクが行われます。クライアントまたはサーバーが接続を閉じるように構成している可能性があります。通常、Tomcat / Websphere環境で発生します。
zkarthik

8
@JamesSchek複数の接続で同じSSLセッションを再利用する必要があるため、状況がかなり変わります。HTTPキープアライブが機能していなくても同じことが当てはまります。
ローン侯爵2013年

14
@EJPその通りです。そして2013年には、ほとんどのブラウザー/サーバーとSSL / TLS実装がセッションの再利用を利用しています。2008年、それは常に安全な仮定ではありませんでした。
James Schek、2013年

3
この質問は、「http対httpsのパフォーマンス」でGoogleに高く表示されます。上記の答えは2008年には当てはまりましたが、2015年には当てはまらず、httpsの使用を回避する決定の基礎として使用すべきではありません。
Paul Schreiber 2015年

101

HTTPSによって遅延がどのように増加するかを本当に理解するには、HTTPS接続が確立される方法を理解する必要があります。ここに素敵な図があります。重要なのは、クライアントが2つの「レッグ」(1回の往復でリクエストを送信し、サーバーが応答を送信する)の後にデータを取得する代わりに、少なくとも4つのレッグ(2回の往復)までデータを取得しないことです。 。したがって、パケットがクライアントとサーバーの間を移動するのに100ミリ秒かかる場合、最初のHTTPSリクエストには少なくとも500ミリ秒かかります。

もちろん、これはHTTPS接続を再利用することで軽減できます(ブラウザーで行う必要があります)が、HTTPS Webサイトをロードするときの最初のストールの一部については説明しています。


1
Javaクライアントに関して、HTTPS接続を再利用できるようにするにはどうすればよいですか?つまり、HttpsConnectionの静的オブジェクトを作成して再利用できますか?(Webアプリケーションのコンテキスト内)
Niks

1
5年後、素敵な+1ダイアグラムへのリンクが機能しません。誰かがそれを見つけて、リンクの代わりに回答に入れることができますか?
ジムウォルフ2013年

2
@FRoZenが代替リンクを見つけました
Stefan L

:また、私は、このページのAAより良い全体像を理解するために、HTTPのは非常に良いと思います図 blog.catchpoint.com/2010/09/17/anatomyhttp
楕円ビュー

1
@Nikhil Javaは、ユーザーがから強制されない限り、基になる接続を自動的に再利用し、リクエスト間で共有しますdisconnectドキュメントを確認してください。
モニッシュ、

76

オーバーヘッドは暗号化によるものではありません。最近のCPUでは、SSLに必要な暗号化は簡単です。

オーバーヘッドは、SSLハンドシェイクが原因で発生します。SSLハンドシェイクは長く、HTTPセッションでのHTTPSセッションに必要なラウンドトリップの数が大幅に増加します。

サーバーがシミュレートされた高遅延リンクの端にある間のページ読み込み時間を(Firebugなどのツールを使用して)測定します。高遅延リンクをシミュレートするツールが存在します-Linuxには「netem」があります。同じセットアップでHTTPとHTTPSを比較します。

待ち時間は、次の方法である程度軽減できます。

  • サーバーがHTTPキープアライブを使用していることを確認する-これにより、クライアントはSSLセッションを再利用できるため、別のハンドシェイクが不要になります。
  • 可能な限り少ない数にリクエストの数を減らす-可能な場合はリソース(.jsインクルードファイル、CSSなど)を組み合わせ、クライアント側のキャッシュを奨励する
  • ページにロードする必要のないデータを(おそらく非表示のHTML要素で)ロードし、クライアントスクリプトを使用して表示するなどして、ページのロード数を減らします。

8
@MarkRに非常に同意します。私のホームページの最近のプロファイルであるHTTPとHTTPSの平均読み込み時間は、それぞれ1.5秒と4.5秒でした。接続の詳細を見ると、大きな遅延要因は、SSLハンドシェイクによる余分なラウンドトリップでした。3G以上のモバイルブラウザはさらに悪かった。数字はそれぞれ5秒と9秒でした。
Clint Pachl

26

2014年12月の更新

AnthumChrisのHTTP vs HTTPS Test Webサイトを使用して、ご使用のブラウザーでHTTPとHTTPSのパフォーマンスの違いを簡単にテストできます。「このページは、安全でないHTTP接続と暗号化されたHTTPS接続での読み込み時間を測定します。どちらのページも、キャッシュされていない360個の一意の画像を読み込みます(合計2.04 MB)。」

結果はあなたを驚かせるかもしれません。

Let's Encrypt Certificate Authorityは、Mozilla、Akamai、Cisco、Electronic Frontier Foundation、およびIdenTrustのおかげで、2015年の夏に無料の自動化されたオープンSSL証明書の発行を開始するため、HTTPSのパフォーマンスに関する最新の知識を持つことが重要です。

2015年6月の更新

Let's Encryptの更新-2015年9月に到着:

Twitterの詳細:@letsencrypt

HTTPSおよびSSL / TLSのパフォーマンスの詳細については、以下を参照してください。

HTTPSを使用することの重要性の詳細については、以下を参照してください。

まとめるとIlya Grigorik氏は次のように述べています

以下のコメントを提供してくれたChris - HTTP vs HTTPSテストベンチマークの作者に感謝します。


6
「HTTP vs HTTPSテスト」は意図的に誤解を招くものです。リンクしないでください。そのページが実際に行うことは、HTTPとSPDYを比較することです。それは本当です、あなたが私を信じていないなら、IEでそれを試して、それが何を言っているかを見てください。HTTPリクエストが同等のHTTPSリクエストよりも速い状況はありません。
15年

3
GoogleはSPDYに技術的な接続ではなく、政治的な理由でのみ保護された接続を使用するように強制しました。HTTP / 2(SPDYと同じ速度改善手法を使用)は、セキュリティで保護されていない接続を使用でき、使用する場合は少し高速です。安全でない接続は、同じプロトコルを使用した安全な接続よりも常に少なくとも少し高速です。「HTTP vs HTTPSテスト」は意図的に欺瞞的で誤解を招くものです。
15年

3
ウェブサイトは実数との定量的な比較を提供します、そしてそれはより多くの人々がHTTPSで彼らのユーザーを保護することを奨励する努力です。意見はこれまでのところ私たちを連れて行くだけであり、私たちは常に、IE over HTTPのために遅くて安全でないアプリケーションを構築する自由を持っています。私は常に、HTTPSを使用してChrome / Firefox用の高速で最先端の安全なウェブアプリケーションを構築することに投票します。
AnthumChris 2015年

2
httpvshttps.comでの計算が間違っているように見えます:34秒と比較して1.7秒は「95%高速」ではありません。20倍高速、つまり1900%高速です。継続時間ではなく速度を比較する必要があります。
大佐パニック

2
テストは誤解を招くものであり、欺くものです。パーtools.ietf.org/html/rfc7540#section-3.2 HTTP / 2は、非セキュア接続で使用できない理由はありません。大企業は普遍的なHTTPSの使用を推進しています。理由はさまざまです。しかし、事実は残っています。ページに個人データがない限り、SSLを実行する理由はありません。そして、今日のコンピュータではそうですが、SSLハンドシェイクは簡単です。私たちがこれを言い始めると、それが些細なことであると、単純に行き詰まってしまいます。HTTP / 1.1対HTTP / 1.1 SSLおよびHTTP / 2対HTTP / 2 SSLの1:1テストを作成します。その後、議論します。
Shinrai 2018

23

現在のトップの答えは完全に正しくはありません。

他の人がここで指摘したように、httpsはハンドシェイクを必要とするため、より多くのTCP / IPラウンドトリップを実行します。

WAN環境では、通常、遅延が制限要因となり、サーバーでのCPU使用率の増加ではありません。

ヨーロッパから米国への待ち時間は約200ミリ秒(トルントトリップ時間)になる可能性があることに注意してください。

HTTPWatchでこれを簡単に測定できます(単一ユーザーの場合)。


12

これまでに述べたすべてに加えて、一部の(すべて?)Webブラウザーは、セキュリティ上の理由から、ローカルのハードドライブにHTTPS経由で取得したキャッシュコンテンツを保存しないことに注意してください。つまり、ユーザーの視点から見ると、静的コンテンツがたくさんあるページは、ブラウザの再起動後に読み込みが遅く見えるようになり、サーバーの視点から見ると、HTTPSを介した静的コンテンツのリクエストの量は、HTTPを介する場合よりも多くなります。


6
ヘッダー「Cach-Control:max-age = X、public」を送信すると、最新のブラウザー(FF4、Chrome12、IE8、IE9でテスト済み)がコンテンツをキャッシュします。ただし、これらのブラウザーが条件付きGETを送信することに気づきました。これは、特にSSL接続がキャッシュされていない場合(Keep Alive)に、追加のラウンドトリップのための追加のレイテンシを招く可能性があります。
Clint Pachl

6

これに対する単一の答えはありません。

暗号化は常により多くのCPUを消費します。これは多くの場合、専用ハードウェアにオフロードでき、コストは選択したアルゴリズムによって異なります。たとえば、3desはAESよりも高価です。一部のアルゴリズムは、暗号化解除機能よりも暗号化解除機能の方が高価です。一部は反対のコストを持っています。

バルク暗号よりも高価なのはハンドシェイクのコストです。新しい接続はより多くのCPUを消費します。古いセッションシークレットが期限切れになるまで保持することを犠牲にして、セッション再開によりこれを減らすことができます。これは、それ以上返ってこないクライアントからの小さなリクエストが最も高価であることを意味します。

クロスインターネットトラフィックの場合、使用可能な帯域幅が低すぎるため、データレートのこのコストに気付かない場合があります。しかし、ビジー状態のサーバーでのCPU使用率には確かに気づくでしょう。


6

(ダイヤルアップユーザーとして)SSLを使用した同じページは通常のHTTPを使用した場合よりも数倍遅いと言えます...


6
いい視点ね。また、携帯電話ネットワーク(3G)経由の読み込み時間も2倍から3倍遅いこともわかりました。
Clint Pachl

うん!その答えからちょうど1年半後、私は新しい家に引っ越しました。ついにPOTS回線よりも少ない費用でDSLに切り替えることができました。
Brian Knoblauch 2013年

6

多くの場合、SSLハンドシェイクのパフォーマンスへの影響は、SSLセッションを両端(デスクトップとサーバー)にキャッシュできるため、軽減されます。たとえば、Windowsマシンでは、SSLセッションは最大10時間キャッシュできます。http://support.microsoft.com/kb/247658/EN-USを参照して ください。一部のSSLアクセラレータには、セッションがキャッシュされる時間を調整できるパラメーターもあります。

考慮すべきもう1つの影響は、HTTPSを介して提供される静的コンテンツはプロキシによってキャッシュされないため、同じプロキシを介してサイトにアクセスする複数のユーザーのパフォーマンスが低下する可能性があることです。これは、静的コンテンツがデスクトップでもキャッシュされるという事実によって軽減できます。InternetExplorerバージョン6および7は、特に指示がない限り、キャッシュ可能なHTTPS静的コンテンツをキャッシュします([ツール]メニュー/ [インターネットオプション] / [詳細設定] / [セキュリティ] / [暗号化されたページを保存しない]ディスクへ)。


4

小さな実験を行って、flickrからの同じ画像(233 kb)に対して16%の時間差を得ました。

http://farm8.staticflickr.com/7405/13368635263_d792fc1189_b.jpg

https://farm8.staticflickr.com/7405/13368635263_d792fc1189_b.jpg

ここに画像の説明を入力してください

もちろん、これらの数値は、コンピューターのパフォーマンス、接続速度、サーバーの負荷、パス上のQoS(ブラウザーからサーバーへの特定のネットワークパス)などの多くの要因に依存しますが、一般的な考え方を示しています。完了するにはさらに多くの操作が必要です(SSLハンドシェイクとデータのエンコード/デコード)。


4
それぞれに1つずつ、2つのリクエストに基づく統計分析メトリックを作成できません。
トムロジェロ2017年

3

SSLハンドシェイクのレイテンシに関する優れた記事(少し古いですが、それでも素晴らしい)を次に示します。遅いインターネット接続でアプリを使用していたクライアントの速度低下の主な原因としてSSLを特定するのに役立ちました。

http://www.semicomplete.com/blog/geekery/ssl-latency.html


2

私のプロジェクトでも同じ問題を調査しているので、これらのスライドを見つけました。古いが興味深い:

http://www.cs.nyu.edu/artg/research/comparison/comparison_slides/sld001.htm


簡略化された図は役に立ちましたが、少し欠けていました。:私はより良いHTTPのラウンドトリップの数このページを理解するには便利だと思いblog.catchpoint.com/2010/09/17/anatomyhttp 我々は1つの往復を追加します。私はhttpsのために伝えることができます次に近いなどとして。
2014

2

ここには厄介なエッジケースがあるようです:混雑したwifi上のAjax。

Ajaxは通常、キープアライブが20秒後にタイムアウトになったことを意味します。ただし、wifiは、(理想的には高速の)ajax接続が複数のラウンドトリップを行う必要があることを意味します。さらに悪いことに、wifiはしばしばパケットを失い、TCPの再送信があります。この場合、HTTPSのパフォーマンスは非常に悪くなります。



2

HTTPとHTTPSのパフォーマンス比較

いつものHTTPと比べて、HTTPSを常に遅いページ読み込み時間に関連付けています。Web開発者として、Webページのパフォーマンスは私にとって重要であり、私のWebページのパフォーマンスを低下させるものはすべてノーです。

関連するパフォーマンスへの影響を理解するために、下の図は、HTTPSを使用してリソースをリクエストしたときに内部で何が起こるかについての基本的な考え方を示しています。

ここに画像の説明を入力してください

上の図からわかるように、プレーンなHTTPを使用する場合と比較して、HTTPSを使用する場合に必要な追加の手順がいくつかあります。HTTPSを使用してリクエストを行う場合、リクエストの信頼性を確認するためにハンドシェイクを行う必要があります。このハンドシェイクは、HTTPリクエストと比較すると追加の手順であり、残念ながらオーバーヘッドが発生します。

パフォーマンスへの影響を理解し、パフォーマンスへの影響が大きいかどうかを自分で確認するために、このサイトをテストプラットフォームとして使用しました。私はwebpagetest.orgに行き、視覚的な比較ツールを使用して、HTTPSとHTTPを使用したこのサイトの読み込みを比較しました。

こちらからご覧いただけるように、テスト動画の結果は HTTPSを使用した場合にページの読み込み時間に影響を与えましたが、その違いはごくわずかであり、300ミリ秒の違いに気づきました。これらの時間は、コンピューターのパフォーマンス、接続速度、サーバーの負荷、サーバーからの距離など、多くの要因に依存することに注意することが重要です。

サイトは異なる場合があります。サイトを徹底的にテストし、HTTPSへの切り替えに伴うパフォーマンスへの影響を確認することが重要です。


1
一般にこの例は良いですが、特にPerfect Forward Secrecyの場合は、描写よりも複雑です。また、実際には4つの対称鍵が使用されています。
zaph

0

これを測定する方法があります。jmeterと呼ばれるApacheのツールは、スループットを測定します。SSLの有無にかかわらず、制御された環境でjmeterを使用してサービスの大規模なサンプリングを設定する場合、相対コストの正確な比較を取得する必要があります。あなたの結果に興味があります。


-1

HTTPSには暗号化/復号化のオーバーヘッドがあるため、常に少し遅くなります。SSL終了はCPUを非常に集中的に使用します。SSLをオフロードするデバイスがある場合、サーバーの負荷によっては、レイテンシの違いがほとんど目立たなくなる場合があります。


-1

より重要なパフォーマンスの違いは、ユーザーが接続している間、HTTPSセッションが開いていることです。HTTPの「セッション」は、単一のアイテムリクエストに対してのみ持続します。

多数の同時ユーザーがいるサイトを実行している場合、大量のメモリを購入すると予想されます。


2
HTTP 1.1にはありません。接続は長時間開いたままになります。
Sklivvz 2008

-1

SSLが非SLL HTTPでは必要とされない追加の暗号化ステップを必要とすることを考えると、これはほぼ確実に当てはまります。


2
2つのケースの間にパフォーマンスの違いがあること。
David The Man

2
しかし、問題は「httpとhttpsでパフォーマンスに大きな違いはありますか?」です。
Sklivvz 2008

-1

HTTPSは確かにページ速度に影響します...

上記の引用は、サイトのセキュリティと速度に関する多くの人々の愚かさを明らかにしています。HTTPS / SSLサーバーハンドシェイクは、インターネット接続を確立するときに最初のストールを作成します。訪問者のブラウザ画面に何かがレンダリングを開始する前に遅い遅延があります。この遅延は、Time-to-First-Byte情報で測定されます。

HTTPSハンドシェイクのオーバーヘッドは、Time-to-First-Byte情報(TTFB)に表示されます。一般的なTTFBの範囲は、100ミリ秒未満(最良の場合)から1.5秒超(最悪の場合)です。しかし、もちろん、HTTPSを使用すると500ミリ秒悪くなります。

往復の無線3G接続は500ミリ秒以上になることがあります。追加のトリップにより、遅延が2倍になり1秒以上になります。これは、モバイルのパフォーマンスに大きな悪影響を及ぼします。非常に悪いニュースです。

機密データを交換しない場合は、SSLはまったく必要ありませんが、eコマースWebサイトが好きな場合は、ログインやチェックアウトなどの機密データが交換される特定のページでHTTPSを有効にすることができます。

ソース:Pagepipe


-2

ブラウザーはHTTPまたはHTTPSのいずれかでHTTP / 1.1プロトコルを受け入れることができますが、ブラウザーはHTTPSでHTTP / 2.0プロトコルしか処理できません。HTTP / 1.1からHTTP / 2.0へのプロトコルの違いにより、HTTP / 2.0は平均でHTTP / 1.1の4〜5倍高速になります。また、HTTPSを実装するサイトのほとんどは、HTTP / 2.0プロトコルを介して実装します。したがって、HTTPSは一般的に使用するプロトコルが異なるため、ほとんど常にHTTPよりも高速になります。ただし、HTTP over HTTP / 1.1とHTTPS over HTTP / 1.1を比較すると、HTTPは平均してHTTPSよりもわずかに高速です。

以下は、Chrome(Ver。64)を使用して実行した比較です。

HTTPS over HTTP / 1.1:

  • 0.47秒の平均ページ読み込み時間
  • HTTP over HTTP / 1.1より0.05秒遅い
  • HTTPS over HTTP / 2.0より0.37秒遅い

HTTP over HTTP / 1.1

  • 0.42秒の平均ページ読み込み時間
  • HTTPS over HTTP / 1.1より0.05秒速い
  • HTTPS over HTTP / 2.0より0.32秒遅い

HTTPS over HTTP / 2.0

  • 0.10秒の平均読み込み時間
  • HTTP over HTTP / 1.1より0.32秒速い
  • HTTPS over HTTPS / 1.1より0.37秒速い
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.