(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)
Browser and proxy implementors at Netscape proposed a clever workaround to the blind relay problem that didn’t require all web applications to support advanced versions of HTTP. The workaround introduced a new header called Proxy-Connection and solved the problem of a single blind relay interposed directly after the client— but not all other situations. Proxy-Connection is implemented by modern browsers when proxies are explicitly configured and is understood by many proxies.
Netscape의 브라우저와 프록시 개발자는 모든 웹 애플리케이션이 발전된 HTTP 버전을 지원해야 하는 것이 아님을 고려하여 블라인드 릴레이 문제에 대해 현명한 해결책을 제안했습니다.
이 해결책은 Proxy-Connection이라는 새로운 헤더를 소개하고, 클라이언트의 바로 다음에 위치한 하나의 블라인드 릴레이 문제가 간섭하는 문제를 해결했습니다. 그러나 다른 모든 상황은 해결하지 못했습니다.
Proxy-Connection은 프록시가 명시적으로 구성되어 있는 경우 구현되며, 많은 프록시에 의해 이해됩니다.
The idea is that dumb proxies get into trouble because they blindly forward hop-by-hop headers such as Connection: Keep-Alive. Hop-by-hop headers are relevant only for that single, particular connection and must not be forwarded. This causes trouble when the forwarded headers are misinterpreted by downstream servers as requests from the proxy itself to control its connection.
dumb 프록시가 Connection: Keep-Alive와 같은 hop-by-hop 헤더를 맹목적으로 전달하기 때문에 문제가 발생하는 것입니다.
hop-by-hop 헤더는 특정한 하나의 연결에만 연관이 있으며 다음으로 전달되어서는 안 됩니다.
이 헤더를 전달하는 것은 다운스트림 서버가 요청을 프록시의 연결 제어 요청으로 오해할 때 문제를 일으킵니다.
In the Netscape workaround, browsers send nonstandard Proxy-Connection extension headers to proxies, instead of officially supported and well-known Connection headers. If the proxy is a blind relay, it relays the nonsense Proxy-Connection header to the web server, which harmlessly ignores the header. But if the proxy is a smart proxy (capable of understanding persistent connection handshaking), it replaces the nonsense Proxy-Connection header with a Connection header, which is then sent to the server, having the desired effect.
Netwcape의 방식에서 브라우저는 공식적으로 지원되며 잘 알려진 Connection 헤더 대신 비표준의 Proxy-Connection 확장 헤더를 프록시에게 전달합니다.
만약 프록시가 블라인드 릴레이라면, 무의미한 Proxy-Connection 헤더를 웹 서버로 전달하여 헤더를 안전하게 무시합니다.
그러나 만약 프록시가 똑똑하다면(지속 연결 핸드쉐이킹을 이해할 수 있는 프록시의 경우), 무의미한 Proxy-Connection 헤더를 Connection 헤더로 대체하여 서버에 전송하고 원하는 결과를 얻습니다.
Figure 4-16a–d shows how a blind relay harmlessly forwards Proxy-Connection headers to the web server, which ignores the header, causing no keep-alive connection to be established between the client and proxy or the proxy and server. The smart proxy in Figure 4-16e–h understands the Proxy-Connection header as a request to speak keep-alive, and it sends out its own Connection: Keep-Alive headers to establish keep-alive connections.
Figure 4-16a-d는 블라인드 릴레이가 안전하게 Proxy-Connection 헤더를 웹 서버로 전달하는 방법을 보여줍니다. 이때 Proxy-Connection 헤더는 무시되며 클라이언트와 프록시, 또는 프록시와 서버 사이에 keep-alive 연결이 설정되지 않습니다.
Figure 4-16e-h의 똑똑한 프록시는 Proxy-Connection 헤더를 keep-alive에 관한 요청으로 이해하고 Connection: Keep-Alive 헤더를 전송하여 keep-alive 연결을 설정합니다.
This scheme works around situations where there is only one proxy between the client and server. But if there is a smart proxy on either side of the dumb proxy, the problem will rear its ugly head again, as shown in Figure 4-17.
해당 기법은 클라이언트와 서버 사이에 오직 한 개의 프록시만 있을 때만 문제 상황을 회피합니다.
만약 멍청한 프록시의 양쪽에 똑똑한 프록시들이 있다면, Figure 4-17에서 나타나는 것처럼 이 문제는 또다시 발생할 것입니다.
Furthermore, it is becoming quite common for “invisible” proxies to appear in net- works, either as firewalls, intercepting caches, or reverse proxy server accelerators. Because these devices are invisible to the browser, the browser will not send them Proxy-Connection headers. It is critical that transparent web applications implement persistent connections correctly.
게다가 방화벽이나 인터셉트 캐시, 리버스 프록시 서버 가속기 등 보이지 않는 프록시가 네트워크상에 나타나는 것이 일반적입니다.
이러한 장치들은 브라우저상에 드러나지 않기 때문에 브라우저는 Proxy-Connection 헤더를 전송하지 않을 것입니다.
따라서 투명한 웹 애플리케이션이 지속 연결을 정확하게 구현하는 것이 중요합니다.
요즘 너무 많은 전공 지식이 한 번에 밀려들어와서 머릿속이 뒤죽박죽입니다. 다시 읽고 정리하기를 반복하는데도 머릿속에 남는 게 없네요. 얼마나 더 공부해야 이 내용들이 장기기억으로 넘어갈까요...?? TCP처럼 들어오는 트래픽을 임의로 조절할 수 있는 것도 아니니, 기하급수적으로 증가하는 트래픽을 어거지로 삼키는 중입니다. 사람은 네트워크 연결과 달리 탄력적이라 계속 트래픽을 가하다 보면 언젠가는 더 많은 트래픽을 받을 수 있다는 게 장점이라면 장점이겠죠.
그렇지만 오늘도 해냈습니다. 내일도 꼭 오겠습니다.