클라이언트가 Proxy-Connection: Keep-Alive
헤더를 보내면 중간 스마트 프록시가이 헤더를보고이를 Connection: Keep-Alive
웹 서버로 대체하여 보냅니다. 모두 훌륭하고 훌륭합니다.
그 사이에 2 개의 스마트 프록시가 있으면 어떨까요? 첫 Connection: Keep-Alive
번째가 두 번째로 전달 될 때 두 번째는이 헤더로 무엇을 해야할지 모릅니다. 그것은 수행 할 작업을 알고 Proxy-Connection
있지만 Connection: Keep-Alive
. 헤더를 웹 서버로 다시 보내나요? 현재 TCP 연결에 문제가 발생하지 않습니까?
클라이언트는 Proxy-Connection : Keep-Alive 헤더를 보내고, 중간 스마트 프록시는이 헤더를보고이를 Connection : Keep-Alive로 바꾸고 웹 서버로 보냅니다.
그것이 작동하는 방식이 아닙니다.
Proxy-Connection
그리고 Connection
end-to-end 헤더가 아니라 hop-by-hop 헤더입니다. 즉, 클라이언트는 프록시와의 영구 연결을 사용하기로 결정하고 프록시는 업스트림 호스트 (서버 또는 프록시)와의 지속적인 연결을 원한다고 결정합니다. 클라이언트가 원하기 때문에 프록시가 지속적인 연결을 원하는 것이 아니라 이는 독립적 인 결정입니다. 실제로 클라이언트는 여러 호스트에 액세스하기 위해 프록시에 동일한 TCP 연결을 사용할 수 있지만 프록시는 다른 호스트에 액세스해야하기 때문에 다른 TCP 연결을 만들어야합니다.
그 외에는 Proxy-Connection
어쨌든 잘못된 Connection
것이며 다음 홉이 프록시인지 대상 서버인지에 관계없이 그럴 것입니다. https://trac.tools.ietf.org/wg/httpbis/trac/ticket/158을 참조 하십시오 .
현재 TCP 연결에 문제가 발생하지 않습니까?
이 헤더는 단지 희망 사항이며 연결 유지는 HTTP / 1.1에 암시 적입니다. 즉, 클라이언트가 연결 유지를 원할 때 헤더가 전혀 필요하지 않습니다. 그리고 이것이 소원이기 때문에 클라이언트와 서버 모두 요청 사이에 언제든지 기본 TCP 연결을 닫을 수 있습니다. 클라이언트가 새 요청을 보내는 것과 정확히 동시에 서버가 연결을 닫고 클라이언트가이 상황을 처리해야하는 상황이있을 수 있습니다. 대부분의 경우 새 TCP 연결 내에서 요청을 다시 실행합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다