### What happened?

Using JDK 11 Http Client prevents reusing of DevTools instance. Earlier, this was not a problem since Selenium used a single instance of AsyncHttpClient and it was only closed when the JVM shuts down. But with the JdkHttpClient, Selenium uses a new instance each time and closes it too. 
Changes made as part of https://github.com/SeleniumHQ/selenium/pull/11345, which assigns the client to null while closing causes an NPE when re-using DevTools instance. The changes were made to prevent memory leaks. 

I am not sure about the right approach to address this. I will need to look into it further.

### How can we reproduce the issue?

```shell
Run https://github.com/SeleniumHQ/selenium/blob/trunk/java/test/org/openqa/selenium/devtools/DevToolsReuseTest.java with JDK 11 Http Client
```


### Relevant log output

```shell
Cannot invoke "java.net.http.HttpClient.newWebSocketBuilder()" because "this.client" is null
java.lang.NullPointerException: 
	at org.openqa.selenium.remote.http.jdk.JdkHttpClient.openSocket(JdkHttpClient.java:168)
	at org.openqa.selenium.devtools.Connection.reopen(Connection.java:92)
	at org.openqa.selenium.devtools.DevTools.createSession(DevTools.java:129)
	at org.openqa.selenium.devtools.DevTools.createSession(DevTools.java:117)
	at org.openqa.selenium.devtools.DevToolsReuseTest.shouldBeAbleToCloseDevToolsAndCreateNewInstance(DevToolsReuseTest.java:41)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
```


### Operating System

macOS Ventura

### Selenium version

Java 4.13.0

### What are the browser(s) and version(s) where you see this issue?

Chrome  117

### What are the browser driver(s) and version(s) where you see this issue?

ChromeDriver Version: 117.0.5938.149

### Are you using Selenium Grid?

_No response_
package org.openqa.selenium.devtools;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;
class DevToolsReuseTest extends DevToolsTestBase {
  @Test
  @Disabled("JDK HTTP Client cannot get reused")
  public void shouldBeAbleToCloseDevToolsAndCreateNewInstance() {
    WebDriver driver = new Augmenter().augment(this.driver);
    DevTools devTools = ((HasDevTools) driver).getDevTools();
    devTools.createSession();
    addConsoleLogListener(devTools);
    devTools.close();
    devTools = ((HasDevTools) driver).getDevTools();
    devTools.createSession();
    addConsoleLogListener(devTools);
    devTools.close();
  }
  private static void addConsoleLogListener(DevTools devTools) {
    devTools
        .getDomains()
        .events()
        .addConsoleListener(
            consoleEvent -> assertThat(consoleEvent.getMessages()).contains("Hello, world!"));
  }
}