브라우저 (Firefox와 같은)에서 연결 요청을 수신하고 통계 정보에 대한 요청을 구문 분석 한 다음 요청을 원래 대상으로 전달하는 간단한 프로그램을 작성하고 있습니다 (Java
). 그런 다음 프로그램은 대상에서 응답을 읽고 통계 정보에 대한 응답을 구문 분석 한 다음 응답을 브라우저에 전달합니다.Java HTTPS 연결 전달
// Accept connection from browser and read request
1. Socket browserConnection = serverSocket.accept();
2. browserConnection.getInputStream().read(buffer);
3. SocketInetAddress destInetAddress = parseHttpRequest(buffer);
// Connect to destination and forward request
4. Socket destConnection = new Socket(destInetAddress);
5. destConnection.getOutputStream().write(buffer);
// Read response from destination
6. destConnection.getInputStream().read(buffer);
7. parseHttpResponse(buffer);
// Forward response to browser
8. browserConnection.getOutputStream().write(buffer);
이 HTTP 연결 잘 작동하지만, 내가 HTTPS 연결을 connection reset
을 받고 있어요 다음과 같이
이 작업의 의사 코드이다.
참고 : HTTP와는 달리, 그 다음 몇 가지 receives
단 한 번 send
아니다 것을 내가, HTTP 및 HTTPS 연결의 차이를 알고있다. 내 코드는 HTTPS reads
만큼 필요하고, 또한 writes
만큼 필요하다.
모든 HTTPS 서버 (예 : https://www.google.com, https://www.comodo.com 등)에서 연결 재설정을받는 이유는 무엇입니까?!
이 답변은 해결책으로 표시되었지만 더 많은 실험을 거쳐 오해의 소지가있는 것으로 판명되었으므로 마크를 제거해야합니다. 해결책은 SSL 소켓을 사용하지 않는 것입니다 ... 해결책을 설명 할 것입니다. 나중에 자세히. –