Reactor Netty ର HTTP ପ୍ରକ୍ସି ହ୍ୟାଣ୍ଡଲର ସାଧାରଣ HTTP ଲକ୍ଷ୍ୟ ପାଇଁ ମଧ୍ୟ CONNECT ଟନେଲ ସ୍ଥାପନ କରେ। ଯଦି ଉଦ୍ଦିଷ୍ଟ ପ୍ରକ୍ସି ସାଧାରଣ HTTP/1.1 ଫରୱାର୍ଡିଂ ଗ୍ରହଣ କରେ, Spring WebClient ଅନ୍ୟ ଏକ ସମର୍ଥିତ କନେକ୍ଟର ବ୍ୟବହାର କରିପାରେ।

Spring 6.2 ସହିତ Jetty 12.0.35 ର କ୍ଲାଏଣ୍ଟ API ଏବଂ ସୁସଙ୍ଗତ Jetty Reactive Streams ଏକୀକରଣ ପାଇଁ:

var jetty = new org.eclipse.jetty.client.HttpClient(
    new org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP());
jetty.getProxyConfiguration().addProxy(
    new org.eclipse.jetty.client.HttpProxy("proxy.example", 8080));

var client = WebClient.builder()
    .clientConnector(new JettyClientHttpConnector(jetty))
    .build();

WebClient ଏବଂ JettyClientHttpConnector Spring ର କ୍ଲାସ। ପ୍ରଦାନ କରାଯାଇଥିବା Jetty କ୍ଲାଏଣ୍ଟର ଆରମ୍ଭ ଓ ବନ୍ଦକୁ ଆପ୍ଲିକେସନର ସାଧାରଣ ଜୀବନଚକ୍ର ମାଧ୍ୟମରେ ପରିଚାଳନା କରନ୍ତୁ।

ଲକ୍ଷ୍ୟ ଏବଂ କ୍ଲାଏଣ୍ଟ-ପ୍ରକ୍ସି ପ୍ରୋଟୋକଲ ମେଳ ଖାଉଥିବା ସମୟରେ Jetty ର HTTP/1.1 ପ୍ରକ୍ସି ଟନେଲ ବିନା ସାଧାରଣ HTTP/1.1 ଅନୁରୋଧ ଫରୱାର୍ଡ କରିପାରେ। ଏହାର requiresTunnel ନୀତି ସୁରକ୍ଷିତ ଲକ୍ଷ୍ୟ ଏବଂ ଅସଙ୍ଗତ ପ୍ରୋଟୋକଲ ପଥ ପାଇଁ CONNECT ବ୍ୟବହାର କରେ।

ଏହା ସାଧାରଣ HTTPS ଟନେଲରୁ CONNECT ହଟାଇବାର ଉପାୟ ନୁହେଁ। ଲକ୍ଷ୍ୟର scheme ସଠିକ ରଖନ୍ତୁ।

ଉଲ୍ଲେଖିତ Jetty API ରେ addProxy ବ୍ୟବହାର କରନ୍ତୁ। getProxies ଅପରିବର୍ତ୍ତନୀୟ ତାଲିକା ଫେରାଏ, ତେଣୁ ପୁରୁଣା getProxies().add(...) ପଦ୍ଧତି ଏହାର ବର୍ତ୍ତମାନର ପରିବର୍ତ୍ତନ ଇଣ୍ଟରଫେସ ନୁହେଁ।

ଅନୁମତିପ୍ରାପ୍ତ ସାର୍ବଜନୀନ ପ୍ରକ୍ସି ମାର୍ଗରେ ସାର୍ବଜନୀନ HTTP ଲକ୍ଷ୍ୟ ପାଇଁ, HTTP ପ୍ରକ୍ସି ତାଲିକା Jetty ପ୍ରକ୍ସିର ହୋଷ୍ଟ ଏବଂ ପୋର୍ଟ ପାଇଁ ପ୍ରାର୍ଥୀ ଯୋଗାଏ। କନେକ୍ଟର ତୁଳନା କରିବା ସମୟରେ ପ୍ରକୃତ ପ୍ରକ୍ସି ପ୍ରତିକ୍ରିୟା ପଢନ୍ତୁ। ପ୍ରମାଣୀକରଣ, ଲକ୍ଷ୍ୟ ନୀତି ଏବଂ ଉପଲବ୍ଧ ନଥିବା ଲକ୍ଷ୍ୟ ଫରୱାର୍ଡ HTTP କିମ୍ବା CONNECT ବାଛିବାରୁ ଅଲଗା ରହେ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ