2011-04-11 6 views

답변

7

당신이 큰에서 인터넷과 HTTP를 사용하고자 특별히 아무것도를 전달하기 위해 소켓을 사용하는 응용 프로그램을 작성하는 경우, 당신은 하나 3의 서로 다른 상황에있을 수 있습니다 다음에

  1. 방향 연결 인터넷 - 다른 쪽 끝에있는 서버에 직접 TCP/IP 연결을 설정할 수 있습니다.

  2. SOCKS 프록시를 통한 연결 - 종단점에서 서버에 직접 연결할 수 없습니다. 대신 SOCKS 프로토콜을 사용하여 로컬 LAN 보안 게이트웨이 컴퓨터에 연결하여 마지막에 서버 연결을 열어 SOCKS 프록시 서버에 대한 소켓을 열고 사용자 사이에 트래픽을 전달하여 서버에 패치하도록 요청해야합니다 대상 서버는 로컬 보안 정책이 허용하는 것으로 가정합니다.

  3. HTTP 프록시를 통한 연결 - 인터넷에 직접 연결할 수 없거나 성능 (캐싱) 이유로 프록시를 사용하는 것이 유용합니다. 다시 한번, 다른 쪽 끝에서 서버에 연결을 여는 대신 HTTP 프로토콜을 통해 사용자 가까이있는 HTTP 프록시 서버 (사용자 LAN에 있거나있을 수 있음)에 대한 연결을 열고 사용자를 대신하여 최종 장치와의 HTTP 트랜잭션.

다음은 열거 형 값에 의해 설명되는 3 가지 상황입니다.

실제로 투명 프록시의 네 번째 상황이 있지만 이름에서 알 수 있듯이 코드에서 인식하지 못하므로 enum 값으로 표시되지 않습니다. 이 상황에서는 시나리오 1 (방향 연결)에 따라 행동하지만 실제로는 시나리오 3 (HTTP 프록시)에 있습니다. 대상 서버에서 HTTP 프록시로의 리다이렉션은 LAN상의 네트워킹 장비 (일반적으로 라우터, 때로는 스위치)에 의해 투명하게 발생합니다.

+0

자세한 답변을 보내 주셔서 감사합니다. –

관련 문제