我正在尝试禁用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
我期望在追踪第二条命令时减少握手。我做错了什么还是预期的结果?