설명
프록시 서버는 네트워크 중개자입니다. 클라이언트가 목적지 서버에 직접 연결하는 대신, 프록시에 연결하고, 프록시가 목적지에 연결하며, 프록시가 양방향으로 트래픽을 전달합니다. 목적지 입장에서는 요청이 클라이언트가 아닌 프록시에서 시작된 것으로 보입니다. 사용자 입장에서는 프록시가 투명합니다. 즉, 목적지에 직접 연결하는 것처럼 요청을 보내게 됩니다.
프록시 서버의 가치는 클라이언트와 프록시 사이에 무엇이 있는지에 따라 달라집니다. 소비자 프라이버시를 위해서는 프록시가 클라이언트의 IP를 목적지로부터 숨깁니다. 상업적 데이터 수집을 위해서는 프록시가 특정 지리적 지역이나 IP 유형(레지덴셜, ISP, 모바일)을 통해 트래픽을 라우팅하여 목적지가 요청을 다르게 처리하도록 합니다. 내부 인프라를 위해서는 프록시가 정책을 시행하고, 응답을 캐시하며, 아웃바운드 트래픽을 위한 단일 병목 지점을 제공합니다.
'프록시 서버'라는 용어는 광범위한 종류를 포괄합니다. 정방향 프록시(위에서 설명한 종류)는 클라이언트 측에 위치하여 클라이언트를 더 넓은 인터넷에 대표합니다. 역방향 프록시는 서버 측에 위치하여 클라이언트에게 백엔드를 대표합니다. 투명 프록시는 명시적인 클라이언트 설정 없이 트래픽을 가로챕니다. 각 형태는 서로 다른 문제를 해결합니다.
작동 방식
일반적인 포워드 프록시 흐름: 클라이언트가 프록시 서버에 TCP 연결을 열고, 필요한 경우 인증을 수행한 후, 대상 호스트와 포트를 지정하는 CONNECT 요청을 발행합니다. 프록시는 해당 대상에 대해 자체 TCP 연결을 열고 두 연결 사이에서 바이트를 터널링합니다. HTTPS의 경우, 암호화는 클라이언트와 대상 사이에서 종단 간으로 이루어집니다. 프록시는 요청 내용이 아닌 암호화된 바이트만을 볼 수 있습니다.
프록시는 프로토콜별(HTTP CONNECT, SOCKS5), 지역별(선택한 국가/도시를 통한 종료), 세션별(스티키 대 로테이팅), 그리고 인증 방식별(사용자 이름/비밀번호, IP 허용 목록, 토큰)로 구성할 수 있습니다. 최신 상용 프록시 서비스는 이 모든 것을 사용자 이름 문자열과 HTTP/SOCKS5 연결 매개변수를 통해 제공합니다.