HTTPプロキシサーバーでCONNECTとGETのHTTPメソッドはいつ使うべきですか?
質問
私はWebClientライブラリを作っています。今、プロキシ機能を実装しているので、いくつか調べているのですが、いくつかのコードで
CONNECT
メソッドを使用して URL を要求するコードを見ました。
しかし、ウェブブラウザ内でそれをチェックすると、それは
CONNECT
メソッドを使用せず、代わりにGETメソッドを呼び出しています。
だから私は混乱している。いつ両方のメソッドを使うべきでしょうか?
どのように解決するのですか?
CONNECT リクエストは、プロキシにリモートエンドポイントへの HTTP トンネルを確立するように要求します。 通常 は SSL 接続に使われますが、HTTP にも使えます (プロキシチェーンやトンネリングの目的で使われます)。
CONNECT www.google.com:443
上記の行は、プロキシからポート 443 で www.google.com への接続を開きます。
この後、クライアントから送信されたコンテンツは、プロキシによって
www.google.com:443
.
ユーザがあるページを取得しようとした場合 http://www.google.com を取得しようとした場合、プロキシは彼に代わって全く同じリクエストを送り、レスポンスを取得することができます。
SSL(HTTPS) では、2つのリモートエンドポイントだけがリクエストを理解し、プロキシはそれを解読することができません。したがって、プロキシが行うことは CONNECT を使ってトンネルを開き、2 つのエンドポイント (Web サーバとクライアント) が互いに直接会話できるようにすることだけです。
プロキシ・チェイニング。
2つのプロキシサーバをチェーンしている場合、これは発行されるリクエストの順序です。
GET1 is the original GET request (HTTP URL)
CONNECT1 is the original CONNECT request (SSL/HTTPS URL or Another Proxy)
User Request ==CONNECT1==> (Your_Primary_Proxy ==CONNECT==> AnotherProxy-1 ... ==CONNECT==> AnotherProxy-n) ==GET1(IF is http)/CONNECT1(IF is https)==> Destination_URL
関連
最新
-
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 実装 サイバーパンク風ボタン