# JEP 517: a client that prefers HTTP/3 against a server that only speaks HTTP/1.1 over TLS (loopback, JDK's own HttpsServer) # There is no live HTTP/3 server in this transcript: the sandbox has no UDP egress. The API surface is javap output below. client asked for : HTTP_3 server answered : HTTP_1_1 200 hello HTTP_3_URI_ONLY : java.net.http.HttpConnectTimeoutException: quic handshake timeout # javap --module java.net.http -public java.net.http.HttpOption 'java.net.http.HttpOption$Http3DiscoveryMode' Compiled from "HttpOption.java" public interface java.net.http.HttpOption { public static final java.net.http.HttpOption H3_DISCOVERY; public abstract java.lang.String name(); public abstract java.lang.Class type(); } Compiled from "HttpOption.java" public final class java.net.http.HttpOption$Http3DiscoveryMode extends java.lang.Enum { public static final java.net.http.HttpOption$Http3DiscoveryMode ANY; public static final java.net.http.HttpOption$Http3DiscoveryMode ALT_SVC; public static final java.net.http.HttpOption$Http3DiscoveryMode HTTP_3_URI_ONLY; public static java.net.http.HttpOption$Http3DiscoveryMode[] values(); public static java.net.http.HttpOption$Http3DiscoveryMode valueOf(java.lang.String); } # javap ... HttpClient$Version public static final java.net.http.HttpClient$Version HTTP_1_1; public static final java.net.http.HttpClient$Version HTTP_2; public static final java.net.http.HttpClient$Version HTTP_3;