我想知道如果在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();
答案 0 :(得分:1)
服务器在打开响应文件时(或从中获取响应的任何位置)发送当前响应。仅在服务器收到HTTP请求后才知道完整URL。此请求仅在已建立的SSL隧道内的SSL握手之后完成。因此,它不会在握手之前提供版本。
答案 1 :(得分:0)
您的帖子中包含的代码并未使用明确的SSL,但使用SSL时,必须先进行握手。在握手完成(并且有效)之前不会下载任何内容,因为在此之前不能执行任何请求。必须完成Handskake才能正确编码和解码请求。