요청을 받았을 때 단순히 웹 사이트를 미러링 한 서버를 작성 하시겠습니까? 예를 들어, NodeJS를 실행하는 http://localhost:5000
을 누르면 cnn.com이 이미지와 모든 것을 렌더링합니다. 이것을 프록시라고 부릅니까?NodeJs 미러 웹 프록시
브라우저 설정 내에서 실제 프록시를 구성해야하는 것이 아니라 대신 요청을 전달하여 본질적으로 다른 사이트의 미러를 제공합니다.
요청을 받았을 때 단순히 웹 사이트를 미러링 한 서버를 작성 하시겠습니까? 예를 들어, NodeJS를 실행하는 http://localhost:5000
을 누르면 cnn.com이 이미지와 모든 것을 렌더링합니다. 이것을 프록시라고 부릅니까?NodeJs 미러 웹 프록시
브라우저 설정 내에서 실제 프록시를 구성해야하는 것이 아니라 대신 요청을 전달하여 본질적으로 다른 사이트의 미러를 제공합니다.
먼저, 귀하의 질문을 이해하도록하겠습니다.
사용자가 http://mynodeproxy.example.com으로 이동하여 브라우저에서 해당 페이지가 마치 http://cnn.com 인 것처럼 렌더링하게하고 싶습니다. 권리?
대답은 다음과 같습니다. 가능한 것으로 생각하면 그렇게 할 수 없습니다. 이것은이 접근 가능합니다 :
사용자 (모든 브라우저가 프록시 서버를 구성을 지원하는 이유는) 브라우저 설정에서 실제 프록시 서버를 구성합니다. 기존 프록시 서버를 사용하거나 노드 및 특수 응용 프로그램 논리를 사용하여 자체 프록시 서버를 작성할 수 있습니다. 하지만 요점은 사용자가 프록시 주소를 브라우저의 주소 표시 줄에 입력하지 않는다는 것입니다. 프록시 주소를 브라우저 설정 "프록시 서버"입력란에 입력하고 브라우저 주소창에 "http://cnn.com"을 입력하십시오.
네트워크에서 보내는 모든 트래픽을 제어하는 경우 DNS 하이재킹이나 프록시를 통한 모든 트래픽 라우팅과 같은 호텔 스타일의 트릭을 수행 할 수 있습니다. 프록시가 CNN.com에서 얻는 HTML 다시 다른 cnn.com 리소스에 대한 하이퍼 링크를해야 할 것 때문에
그러나 이것은 사용자를함으로써 작동하지 않습니다는 브라우저의 주소 표시 줄에 통과 프록시 서버 주소를 넣어 (사이트의 다른 페이지, 이미지, 글꼴, CSS, JS 등). 이러한 링크에 포함 된 HTML 문서와 관련되지 않고 호스트 이름이 포함 된 경우 브라우저는 프록시를 무시하고 브라우저를로드하기 위해 cnn.com에 직접 연결합니다.
이제 CNN HTML에 <a href="http://cnn.com">View the CNN Home Page</a>
과 같은 링크가 있다고 상상해보십시오. 사용자가 클릭하면 어떻게됩니까? 맞습니다. 프록시가 완전히 벗어나 우회합니다. 이것이 프록시 서버가 명시 적 브라우저 지원과 함께 작동하는 이유입니다.
CNN.com의 자바 스크립트가 아약스 요청 만들기, DOM에 동적으로 추가하기 등을 시작하면 초기 cnn.com 홈 페이지 HTML을 프록시 처리하고 수정하는 것만으로는 불가능합니다. 네, 매우 사소한 인위적인 웹 페이지 예를 들어 이것을 할 수는 있지만 현실적으로는 cnn.com과 같은 현대적인 인기있는 사이트는 가능하지 않습니다.
모든 요청을 프록시하고 싶지 않습니다. 단지 http : // localhost : 8000이 cnn.com을 제공해야합니다. 브라우저 설정으로 구성해야하는 일반 프록시를 찾지 않고 대신 일부 사이트의 미러를 제공하도록 요청을 전달하는 방법 만 찾고 있습니다. – Verhogen
그래서 "그냥 cnn.com"은 콘텐츠 전달 네트워크, YouTube 등 많은 다른 호스트의 콘텐츠를 포함하여 수십 개의 요청이 될 수 있습니다. "웹"입니다. 그것은 그렇게 간단한 것이 아닙니다. –
나는 그것을 완전히 알고있다. 도메인을 벗어난 도메인은 괜찮지 만 동일한 도메인을 향한 모든 콘텐츠는 전달/미러링되어야합니다. – Verhogen
Node.JS (또는 HTTP 기반)는 실제로이 작업을 수행하는 가장 좋은 방법은 아닙니다. SOCKS 프록시 같은 것이 당신에게 효과가 있습니까? 그것들은 설정이 훨씬 간단하고 SSH 기능을 갖춘 서버를 넘어서는 어떤 것도 필요로하지 않습니다. –