2012-04-14 2 views
0

웹 프록시에서 작업 중입니다. 논리는 클라이언트가 프록시에 요청을 보내고 프록시가 서버에 동일한 요청을 보내고 응답을 클라이언트에 다시 보냅니다. 예를 들어 www.baidu.com을 방문하고 싶습니다. 나는 "호스트 : 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"에 대한 쿼리와는 달리 시작할 수 있습니다 "호스트 :"를 감지하면됩니다. 누군가 나를 도울 수 있습니까? 고마워.하나의 웹 페이지 요청에서 복수 DNS 쿼리

답변

0

이것은 아마도 이것이 처음부터 잘 작동하는 방식이 아닙니다.

내 브라우저에서 프록시를 통해 트래픽을 보내는 www.baidu.com을 방문한다고 상상해보십시오. 현재 귀하의 프록시는 www.baidu.com 만 조회 할 수 있습니다.

내 브라우저가이 요청에 대해 HTML 청크를 수신하면 html/js 코드에서 nsclick.baidu.com에서 가져온 일부 이미지에 대한 요청을로드합니다. 마찬가지로 다른 리소스 (css, js, 이미지)에 대한 요청도 가능합니다. 차례 차례로 그들 모두는 당신의 프록시를 거치며, 당신은 당신의 일반적인 DNS 질의를 할 것입니다.

+0

나는 이것을 확인하고 이러한 새로운 주소를 탐지하기위한 몇 가지 테스트를 추가 할 것이다. –

+0

OP는 사전 요구/미리 캐시하기 위해 필요한 호스트 이름을 미리 알고 싶어한다고 생각합니다. –

+0

각 DNS 쿼리는 (여러) 별도의 GET 요청입니다. – Sandman4

관련 문제