与Java建立https连接时禁用keepAlive

时间:2019-05-20 21:02:33

标签: java https keep-alive

我正在尝试禁用Java的HTTP保持活动状态以进行性能测试。我假设如果禁用保持活动状态,Java应该减少握手。但是,在将-Dhttp.keepalive=false添加到JVM args(应该禁用保持活动状态)之后,在Wireshark中跟踪数据包时,我发现没有区别。

我做了一个小的Java代码来测试它:

public static void main(String[] args) throws Exception {
        String httpsURL = "https://www.google.com";
        URL myUrl = new URL(httpsURL);

        for(int i = 0; i < 3; i++) {
            System.out.println("Sending packet");
            HttpsURLConnection conn = (HttpsURLConnection) myUrl.openConnection();
            InputStream is = conn.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            Thread.sleep(10000);
        }

    }

我正在从这里获得的JDK上对其进行测试:https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=openj9#x64_mac

所以我尝试使用以下2条命令运行:

  • openj9-11/Contents/Home/bin/java HelloWorld
  • openj9-11/Contents/Home/bin/java -Dhttp.keepAlive=false HelloWorld

来自Wireshark的结果(当通过ip == 172.217.10.100进行过滤;即:Google的IP)时,两次运行的结果相同。 -Wireshark(跟踪第一个命令)的屏幕截图:https://imgur.com/a/SrNWmxZ -Wireshark(跟踪第二个命令)的屏幕截图:https://imgur.com/a/bOEn0tC

我期望在追踪第二条命令时减少握手。我做错了什么还是预期的结果?

0 个答案:

没有答案