2012-04-14 11 views
0

私はWebプロキシで作業しています。ロジックはクライアントがリクエストをプロキシに送信し、プロキシが同じリクエストをサーバに送信し、クライアントに返答を返します。 たとえば、www.baidu.comにアクセスしたいと考えています。私は "Host:www.baidu.com"をGET:パッケージに入れ、DNSリクエストを送信し、 "www.baidu.com"のIPを取得し、プロキシとサーバーの間にソケットを確立します。 質問は、wiresharkを使用してプロキシではない通常のパッケージをキャプチャするときです.www.baidu.comのクエリを除いて、より多くのdnsリクエストのクエリが「www.baidu.com」であることがわかります。それはnsclick.baidu.comとsuggestion.baidu.comを別のsockets.Butで検索しますが、これらのDNSクエリを開始できるようにするための信号はありません。「www.baidu.com」のクエリとは異なり、開始することができますそれは私が "Host:"を検出した時です。誰か助けてくれますか?ありがとう。複数のDNSクエリを1つのWebページリクエストで受け取ります

答えて

0

これは、これがおそらく最初の場所で動作する方法ではありません。

私のブラウザでwww.baidu.comを押すと、プロキシ経由でトラフィックが送信されるとします。あなたのプロキシは現在、www.baidu.comだけを検索することです。

私のブラウザがこのリクエストのHTMLチャンクを受信すると、受信したhtml/jsコードは、nsclick.baidu.comからのいくつかのイメージのリクエストを読み込みます。同様に、他のリソース(css、js、images)のリクエストも可能です。順番に彼らはすべてあなたのプロキシを通過し、あなたの通常のDNSクエリを実行します。

+0

私はそれを確認し、これらの新しいアドレスを検出するためのテストを追加します。 –

+0

私はOPをプリクエリ/プリキャッシュするために必要なホスト名を事前に知りたいと思っています。 –

+0

このような各DNSクエリは、(複数の)別々のGET要求です。 – Sandman4

関連する問題