Proxyの動作について

このQ&Aのポイント
  • Proxyを挟んだ場合の処理の流れとは?
  • クライアントからのHTTPリクエストはどうなる?
  • クライアント端末とProxyサーバの関係は?
回答を見る
  • ベストアンサー

Proxyの動作について

初歩的なことだとは思うのですが、お知恵をお貸しください。 Proxyを挟んだ場合、クライアント端末-Proxy-Webサーバ間でどのような処理の流れになるかを調べているのですが、 TCPDUMPで確認したところクライアントからのHTTPプロトコルが確認できず、クライアント端末とProxyサーバ間では3WAYハンドシェークしか行っていない様でした。 当初はクライアントからのHTTPリクエストをProxyサーバが受け、ProxyサーバがWebにさらにリクエストをし、、、という流れを行うと考えていたのですが、 実際のところとしてProxyサーバをはさんだ場合の一連の流れとしてはどのようになるのでしょうか? クライアント端末とProxyサーバは同一セグメント内に設置している構成です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • teltel
  • ベストアンサー率48% (41/84)
回答No.2

正常にTCPDUMPでパケットキャプチャができればコネクション確立後のHTTPメソッドも確認できるはずなのですが、確認できませんでしたか? WireSharkなどのGUIベースのツールで確認したほうが表示のフィルタリング機能などを使って同一コネクションのデータを見つけるのとかは簡単かと思います。 ちなみに、HTTPプロキシの場合には通常のクライアント→サーバと同様のメソッドがクライアントからプロキシ宛に発行されて、中継されるようになります。 *HTTPSの場合はトンネルしてしまうので、メソッドは見えません。

maruhan
質問者

お礼

回答遅くなってしまいました。 やっとHTTPメソッド確認できました!! WireSharkで確認していたのですが、 通常HTTPメソッドのようにプロトコルで表示されるのではなく TCPとして表示されるのですね。 これですっきりしました。 ありがとうございました。

その他の回答 (1)

  • teltel
  • ベストアンサー率48% (41/84)
回答No.1

当初の想定どおりで間違いないはずです。

maruhan
質問者

お礼

回答ありがとうございます。 やはり想定していた動作で間違いないんですね。 ただキャプチャ結果を見る限りクライアント端末からのHTTPリクエストが出ていないのが気になっています。 クライアントからのリクエストはどのように行われているのでしょうか?

関連するQ&A

  • Proxyサーバの提供するプロトコルについて

    【Proxyサーバの提供するプロトコルについて】 公開Proxyサーバのアドレスをネットでよく見るんですが、 ***.***.****.****:8080(←待ち受けポート)こんな風に書いてあります。 これはクライアントPCからの要求はFTPもHTTPもPOPなども全てこのProxyサーバは 8080の1つのポートで待ち受けるのでしょうか? それとも8080とだけ書かれているProxyサーバはHTTP(WEB)だけしかアプリケーションデータを 見ませんよって意味ですか? 勘違いしていたらすみません。ご教授のほどよろしくお願い致します。

  • Proxyサーバーのプロトコル

    Proxyサーバーとクライアントと通信するときのプロトコルを解説してるページはないでしょうか?

  • Perl LWPでproxyがうまく刺さらない

    Perl初心者です。 LWPでどうしてもproxyが通りません・・・。 何が悪いのかわかりません。教えてください。 モジュールは全て導入を確認しました。 よろしくお願いします。 稚拙なミスだったらごめんなさい。 use LWP::Simple; use LWP::UserAgent; use HTTP::Request::Common; my $ua = LWP::UserAgent->new( timeout=>"5" ); #cybersyndromeさんからLWP::Simpleでproxyを取得 $_ = get('http://www.cybersyndrome.net/pla5.html'); #proxyをリストに代入 (@proxy_list)=/\"\>(.*?)\<\/a\>\<\/li\>\<li\>/g; #適当なサイトをリクエストのターゲットに $r = new HTTP::Request GET,('http://taruo.net/e/'); #前述のターゲットへリクエストしてひとつづつproxyが通るか確かめたいのに何故かすべてすぐにERRORに for($i = 0;$i <= 10;$i++){ $proxy = 'http://'.$proxy_list[$i]; $ua->proxy ([qw(http https)] , $proxy); $req = $ua->request($r); if ($req->is_success) { print "Success!\n"; }else{ print "Error\n"; } }

    • ベストアンサー
    • Perl
  • proxyはどこを見てキャッシュに情報があると判断しているのか教えてください

    環境:クライアントA,B⇔Proxy⇔webサーバ 前提:クライアントAはWebサーバへアクセスしa.htmlをgetしている。 クライアントBがWebサーバへアクセスしa.htmlをgetする際、 間に入っているProxyサーバ内に「a.html」がキャッシュされている為 ProxyからクライアントBにa.htmlファイルが渡されます。 その際のProxy内のアクションについて質問です。 ProxyサーバはクライアントBからどの情報基にa.htmlが自分の キャッシュ内に存在すると判断しているのでしょうか? 自分の考えでは  ファイル名だけだとa.htmlの内容が変更された場合、  変更前の情報を渡してしまうと思っており、クライアントAのアクセスから得た  a.htmlファイルにハッシュ関数を使用して任意のIDを付けた上でキャッシュに格納し  クライアントBからa.htmlのget要求を受けた場合、ハッシュ関数を使用してハッシュ値  を求め、キャッシュ内のIDを見て判断しているではと考えております。 以上です。 よろしくお願いします。

  • Proxy.pacの記述方法について(2)

    192.168.168.0/24と192.168.167.0/24のネットワークがあり、接続元のIPアドレスが192.168.168.0/24に所属しており、接続先がwww.yahoo.co.jpの場合、192.168.1.100:3128のPROXYサーバーを使用させたいと考えています。 ProxyサーバーのOSはCentOS5.6、アプリはSquidを使用しています。 PROXY.PACを使用しなければ、192.168.1.100:3128のPROXYサーバーが使用されていることは確認済みです。 Windows7(x64)&IE9(32)、WindowsXP(x86)&IE8でPROXY.PACの設定を使用しましたが、192.168.1.100:3128のPROXYサーバーが使用されていないことは192.168.168.0/24の端末でパケットキャプチャを取得して確認しています。 PROXY.PACをクライアント端末に保存する方法と、PROXYサーバーにおいて、そのPROXY.PACを参照させる方法を試しましたがどちらもうまくいきませんでした。 現在、IEのみでテストしていますが、Firefox,Safari,GoogleChrome等のブラウザでも PROXY.PACを使用して、接続元のIPアドレスが192.168.168.0/24に所属しており、接続先がwww.yahoo.co.jpの場合、192.168.1.100:3128のPROXYサーバーを使用させたいと考えております。 --------------------------------------------------- function FindProxyForURL(url,host) { var myipaddr = myIpAddress(); if (isInNet(myipaddr, "192.168.168.0", "255.255.255.0")) || return "DIRECT"; else if(shExpMatch(url,“www.yahoo.co.jp")) || return "DIRECT"; else return "PROXY 192.168.1.100:3128; DIRECT"; } --------------------------------------------------- PROXY.PACの書式に問題がないかと要件を満たすPROXY.PACの内容についてご教示頂けますようお願い致します。

  • MS Proxy2.0 の設定

    WinNTサーバで2枚のNICとProxy2000を利用し専用線でインターネットに接続していたのですが端末が増え、Proxy2000では処理能力に限界がみえたので、MS Proxy2.0にしようと試みたのですがどうしても、メールサーバにアクセスできません。メールサーバ、DNSは外部のサービスを利用しています。Winsockをインストールすれば接続できると書いているのですがインストールしてもうまくいきません。一体どこを設定すればよいのでしょうか?ちなみにWEBは問題なく閲覧できます。社内からもパフォーマンスが悪いと苦情が頻発して非常に困っております。

  • 負荷分散装置を経由する同一ネットワークセグメント内の通信は可能?

    SE修行中の者です。「Webクライアント-負荷分散装置(以下、LB)-Webサーバー」という構成を考えています。 このとき、サーバーと同じネットワークセグメント内のクライアントからHTTPリクエストが発行された場合、「行き」パケットはLBを経由しても「戻り」パケットはLBを経由せずに直接クライアントに戻ってしまうのではないかと思います(別セグメントのクライアントならば、サーバー側のデフォルトゲートウェイをLBのIPにしておけば「戻り」もLBを通ってくれると思いますが。) そうなると、TCPのコネクションが確立できない、すなわち通信ができない、ということになるような気がするのです。 このような問題を回避するにはどのようにしたらよいものでしょうか?(ちなみに負荷分散装置はAlteon Application Switchというものらしいです)

  • 二重化構成ネットワークのSolarisのNIC設定について

    Proxyサーバ2台、Webサーバ2台、クライアントの3階層ネットワーク構築をしております。 Proxyサーバ、WebサーバはSPARC Solaris8です。 このネットワークはサーバがすべて2台構成となっていてProxyサーバ、Webサーバは負荷分散運用となっています。 サーバ間のネットワークはFW、ハブ等もすべて二重化されています。 そのためProxyサーバ、Webサーバには全二重化ネットワークをサポートするために、NICが4口あります。 (セグメントAのハブ1,2用とセグメントBのハブ3,4用) しかし、IPアドレスは2つしか割りあてられませんでした。 (セグメントAのIPアドレスと、セグメントBのIPアドレス) そこで質問なのですが、2つのNICで1つのIPアドレスを共有(?)する方法はあるのでしょうか? 検索したのですが、本件の解答を見つける事ができませんでした。 解決方法ご存知でしたらなにとぞご教示ください。 宜しくお願いいたします。

  • HTTPリクエスト

    JSPのクライアントからサーブレットにHTTPリクエストを送信する部分について、質問させていただきたく思います。 [実現したいこと] ・クライアント側からのHTTPリクエストのヘッダの内容を、任意のものに書き換えてサーブレットに送信。 [環境] WEB APサーバー:Web Sphere Aprication Server HTTPヘッダを読み取って、ヘッダ内のクライアント情報を元にクライアント別の処理を振り分ける機能を作ったのですが、そこの機能をテストするのに上の機能を使いたいと思ってます。。。 皆様のお知恵を拝借できればと思います。 よろしくお願いいたします。

  • php で proxy するとは どういう意味?

    WebコンテンツにてBasic認証のかかっているmp3を flashから再生したいのですが、flashの仕様でHTTPヘッダが送れない為 直接はダウンロードできないようです(図1) (図1)flash --- 認証付きmp3 そこで (図2)flash ---- php ---- 認証付きmp3 図2とし、phpを利用して認証したmp3をflashに渡そうと思います。 これを"phpでproxyする"と教えていただいたのですが proxyサーバーと同意なのでしょうか? それと、図2で案件を実現するにはphpはどのようにコーディングすればよいのでしょうか?今考えているのが、 phpで ・HTTPヘッダを送る(認証パスも含む) ・目的のmp3を開く(?) fsockopen()関数を用いる です。

    • 締切済み
    • PHP