【发布时间】:2016-03-02 12:54:00
【问题描述】:
我想知道如果在 SSL 握手或 TCP 握手期间网站内容发生变化会发生什么?
例如:
客户端和服务器之间的 TCP 或 SSL 握手恰好在 16:02:00 点开始。由于某种原因,握手需要很长时间。比如说 5 秒。
所以握手在 16:02:05 完成,有一些延迟但成功。客户端开始获取内容。
但是如果网站内容在 ssl 握手时发生变化。例如,如果它在 16:02:03 发生变化,会发生什么?
假设在 16:02:00 站点内容是:“ABCD”(当 ssl 或 tcp 握手开始时)
并在 16:02:03 变为:“ABCD1234”(握手继续)
所以客户端得到其中的哪一个; “ABCD”还是“ABCD1234”?
这是获取服务器响应的客户端 java 代码:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));
URL obj = new URL(url); // url is https
HttpURLConnection con = (HttpURLConnection) obj.openConnection(proxy);
con.setConnectTimeout(10000);
con.setReadTimeout(15000);
int responseCode = con.getResponseCode();
InputStream is = con.getInputStream();
【问题讨论】: