6.5 프록시 요청의 미묘한 기능
6.5.1 프록시 URI가 서버 URI와 다름
서버 URI는 부분 URI
GET /index.html HTTP/1.0
사용자 에이전트: 야생동물 공원/537.36
프록시 URI는 전체 URI입니다.
https://www.bk.com/index.html HTTP/1.0 받기
사용자 에이전트: 야생동물 공원/537.36
클라이언트가 프록시를 사용하도록 구성된 경우 전체 URI를 사용합니다.
6.5.2 프록시 서버에서 두 개의 도메인을 호스팅하면 어떻게 됩니까?
따라서 클라이언트에서 호스트 헤더를 요청하십시오.
6.5.3 URI의 일부를 수신하는 가로채기/프록시
이는 클라이언트가 가로채기/프록시 프록시를 프록시가 아닌 원본 서버로 보기 때문입니다.
6.5.4 프록시는 프록시 요청 및 서버 요청을 처리할 수 있습니다.
명시적 프록시는 전체 URI를 처리할 수 있고 가로채기/프록시 프록시는 부분 URI를 처리할 수 있습니다.
부분 URI는 주어졌으나 Host 헤더가 없는 경우 조회가 필요하며, Intercept/proxy에 원본 서버의 호스트 정보가 설정되어 있는지 확인해야 합니다.
그렇지 않은 경우 오류 메시지를 반환합니다(클라이언트가 호스트 헤더를 지원하는 브라우저로 전환하도록 지시).
6.5.5 전송 중인 URI 변경
중개자로서 프록시는 전달 URI를 부분적으로 수정할 수 있으며, 이는 심각한 문제를 일으킬 수 있으므로 피해야 합니다.
이제 프록시가 브라우저의 스마트 URI 자동 완성 또는 호스트 이름 확장 기능에 어떤 영향을 미칠 수 있는지 살펴보겠습니다.
6.5.6 URI 클라이언트 자동 확장
대부분의 브라우저에서 주소 표시줄에 yahoo를 입력하면 www.와 .com 다음에 http://가 옵니다.
6.5.7 프록시가 없는 경우(소스 사이트에 직접 접속하는 경우) URI 확인
oreily 진입 시 자동 확장 기능으로 획득한 도메인 네임 주소(www.oreily.com)를 통해 IP를 조회하고, 이 IP를 이용하여 오리진 사이트에 접속합니다.
6.5.8 명시적 프록시 사용 시 URI 확인
oreily를 입력하면 브라우저가 프록시 서버에 연결됩니다.
http://오라일리/ 요구 사항(브라우저는 기본 구성표 http://와 경로 /만 추가합니다.
)
6.5.9 가로채기 프록시 사용 시 URI 확인
이것이 문제가 되는 곳입니다.
oreily 입력 시 자동확장 기능으로 획득한 도메인네임 주소(www.oreily.com)를 통해 IP를 찾고 해당 IP로 요청을 보내면 인터셉터 에이전트와 1차 통신을 한다.
그러나 원본 사이트의 IP가 죽은 경우 인터셉터 프록시는 두 번째 요청을 보낼 때 이 IP의 원본 사이트로 요청을 보낼 수 없습니다.
무엇을 하든 원본 서버에 액세스하려면 다른 IP 주소를 알아내야 합니다.
(호스트 헤더를 분석하거나 죽은 IP로 DNS 조회를 수행하여)
따라서 명시적 프록시를 사용하거나 프록시를 가로채는 경우 이러한 프록시는 누락된 IP에 대한 오류를 요청하기 위해 내결함성이 있어야 합니다.