2013-07-14 4 views
0

HTTP 프록시 서버를 사용하면 요청이 프록시로 전달되고 프록시가 대상 사이트에 대한 새 요청을 작성한 다음 응답을 복사하고 이에 따라 사용자에게 표시 할 HTML 마크 업을 생성한다는 것을 알고 있습니다. 그러나 약 (대상 사이트) 응답의 마크 업에 포함 된 외부 자바 스크립트 파일이있는 경우 :HTTP 프록시는 HTML 마크 업에서 호출 된 외부 JS 파일을 어떻게 처리합니까?

<script src="http://externalsite.com/whatever.js"></script> 

내가 그들을 기다리고 있었다가 프록시에 의해 사용자에게 표시 마크 업에 다시 기록 할 수는 :

<script src="http://proxy.com/currentusercache/whatever.js"></script> 

이제는 완전히 혼란 스러워요!

+1

프록시는 리소스에 대한 요청이 프록시에 * 수행 될 때 주어진 리소스 경로 *에 대한 데이터를 반환합니다. 클라이언트가 차이점을 알 필요가 없으며 프록시가 원본 리소스 경로를 다시 쓰지 않습니다. (일부 익명 처리 프록시는 있지만 다른 주제입니다!) Squid는 익명 프록시가 아닌 주로 캐싱 프록시입니다. – user2246674

+0

@ user2246674 - 익명 프록시 인 경우 어떻게됩니까? – user1166981

+1

다릅니다. 익명 프록시는 일반적으로 모든 리소스 경로가 상기 프록시 또는 다른 익명화 서비스를 사용할 수 있도록 제공 한 HTML *을 재 작성하는 데 많은 시간을 소비합니다. 즉, 'http : //google.com? q = blahblah'에 대한 링크조차도 'http : // proxy/ASddfad789FD/whatever'로 다시 작성 될 수 있습니다. (프록시는 여전히 원본 HTML에 영향을 줄 수는 없지만 반환하는 HTML 만 영향을받습니다. – user2246674

답변

1

프록시 서버는 URL을 다시 쓰지 않습니다. 하지만 URL이 상대적이라면 URL은 중요하지 않습니다. 그러면 프록시 된 페이지가 프록시에 다시 연결됩니다.

그러나 응답 본문을 변경하는 방법은 몇 가지가 있습니다. http://wiki.nginx.org/HttpSubModule nginx를 사용하는 경우.

추신. 확인할 수 있습니다 similar mailinglist post