현재 연결 유지 연결을 지원하는 다중 스레드 프록시 서버에서 작업하고 있습니다. 파이어 폭스 브라우저에서 요청을 처리하는 동안 몇 가지 이상한 문제가 나타납니다. localhost : 10001/http://url을 사용하여 로컬 프록시에 연결하고이 호스트의 모든 링크에 액세스 할 수 있습니다. 과정은 다음과 같습니다. 1. 포트를 10001에 바인드하는 소켓을 만듭니다. 2. 연결이 수락되고 클라이언트가 연결되어 있으면 fork() 3. 클라이언트 요청을 지속적 연결로 처리합니다.HTTP 프록시 서버 연결 유지 연결 지원
이제는 localhost : 10001/http://url2을 사용하여 다른 호스트에서 두 번째 URL에 액세스하기 위해 Firefox에서 새 탭을 열 때 이상한 점은 첫 번째 연결시 요청이 내 클라이언트 소켓 연결로 이동한다는 것입니다 . 나는 처음에는 그것이 내 코드로 인한 것일 수도 있다고 생각했지만, 그런 다음 나는 텔넷을 사용하여 동일한 작업을 시도했다. 그리고 모든 새로운 연결은 별도의 프로세스를 만들 것이다. 파이어 폭스 브라우저가 이렇게 특정 설정이 있습니까 ??
고마워요. 하지만 내 프록시는 동시에 여러 연결을 제공해야합니다. 하나의 요청에 대해 HTTP/1.1 keep-alive를 사용하고 있으며 여전히 처리 중입니다. 그러나 이제는 영구적 인 새로운 요청을 지원하기를 원합니다. 브라우저가 기존 TCP 연결을 사용하고 새로운 TCP 연결을 만들지 못하도록 막을 수있는 방법이 있습니까? –
@Embed_Programmer : 브라우저는 유휴 상태 일 때만 기존 연결을 재사용합니다. 즉,이 연결에 대한 요청은 끝난.다른 경우에는 새 연결을 열거 나 기존 연결이 유휴 상태가 될 때까지 기다립니다. 기존 요청이 완료되지 않았다고 생각하는 동안 브라우저가 새로운 요청을 보내는 것을 본다면 아마 요청의 끝을 판단하는 코드가 잘못되었을 수 있습니다. 브라우저가 동일한 연결에서 동시에 여러 요청을 허용하는 HTTP 파이프 라이닝을 사용하는 경우 일 수도 있습니다. HTTP/1.0 응답 만 보내면이 문제를 해결할 수 있습니다. –
고맙습니다. URL을 통한 프록시 사용이 올바르지 않습니다. 나는 지금 브라우저 내부에서 프록시를 구성했고 나를 귀찮게하는 몇 가지 오류가 수정되었습니다. 당신의 도움을 주셔서 감사합니다 –