Java
ブラウザー (Firefox など) から接続要求を受信し、その要求を解析して統計情報を取得し、その要求を元の宛先に転送する単純なプログラムを作成しています。次に、プログラムは宛先からの応答を読み取り、応答を解析して統計情報を取得し、応答をブラウザーに転送します。
この操作の擬似コードは次のとおりです。
// 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 接続でうまく機能しますが、私はconnection reset
HTTPS 接続を取得しています。
注 : HTTP 接続と HTTPS 接続の違いはわかっています。HTTP とは異なり、一度だけではなく、send
いくつかのreceives
. reads
必要なだけ、また必要なだけ、HTTPS 用の私のコードwrites
。
HTTPS サーバー (例: https://www.google.com、https://www.comodo.comなど) から接続がリセットされるのはなぜですか?