我想知道,如果网站内容在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();

最佳答案

服务器发送在打开响应文件时(或从何处获取响应)的当前响应。只有在服务器收到HTTP请求后,才能知道完整的URL。仅在已建立的SSL隧道内的SSL握手之后才执行此请求。因此,它将不提供握手之前的版本。

关于java - SSL握手和服务器响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33972320/

10-12 04:45