Tunnelada Java Socket HTTP CONNECT ee OpenJDK 25
Isticmaal dariiqa socket-ka proxy HTTP ee OpenJDK 25 si aad u gaarto adeeg TCP la oggolaaday, adoo kala haysta barta dhamaadka proxy-ga iyo halka la aadayaa.
Borotokool TCP gaar ah ayaa mari kara proxy HTTP marka proxy-gaasu oggolaado CONNECT ee halka la aadayaa. Borotokoolka abka ma qasban inuu noqdo HTTP: HTTP ayaa dhisaa tunnel-ka, ka dibna abku wuxuu isku weydaarsadaa baytii u gaar ah gudaha.
OpenJDK 25 wuxuu bixiyaa dariiqa proxy HTTP ee Socket(Proxy). Fulintiisu waxay samaysaa is-weydaarsiga CONNECT oo waxay soo celisaa socket ku xiran oo abku isticmaalo.
Proxy route = new Proxy(
Proxy.Type.HTTP,
new InetSocketAddress("proxy.example", 8080));
try (Socket socket = new Socket(route)) {
socket.setSoTimeout(10000);
socket.connect(
InetSocketAddress.createUnresolved("tcp-service.example", 8443),
5000);
InputStream input = socket.getInputStream();
OutputStream output = socket.getOutputStream();
}Qaybtani waxay isticmaashaa fasallo ka yimid java.net iyo java.io. Beddel labada barta dhamaadka oo samee is-weydaarsiga borotokoolka ka hor intaadan ka bixin block-ga try. Bartilmaameed TCP dadweyne oo la oggolaaday, ka dooro musharixiinta HTTP liiska liiska proxy HTTP kaliya ka dib markaad hubiso fasaxa CONNECT ee dekedda bartilmaameedkaas. Cinwaanka proxy-ga waa halka Java ugu horrayn ku xirmo; cinwaanka loo gudbiyo connect wuxuu tilmaamaa adeegga proxy-ga ay tahay inuu gaaro.
Halka la aadayaa oo aan la xallin waxay hayaan magaca martigeliyaha ee codsiga CONNECT ee fulintan. InetSocketAddress la xalliyay wuxuu codsigaas siiya cinwaankiisa IP ee la xalliyay. Farqigaasi waa muhiim marka proxy-gu ay tahay inuu xalliyo magaca adeegga ama uu ku dhaqmo siyaasad ku salaysan magaca martigeliyaha.
Waxa xiriir guuleystay kuu reebto
Qulqullada ka soo baxa waxay qaadaan xogta adeegga tunnel-ka ku jira. Ma muujiyaan jawaab HTTP gaar ah oo abkaagu ay tahay inuu akhriyo oo tuuro. Ku darista is-weydaarsi CONNECT labaad waxay u diri lahayd adeegga qoraal HTTP ka dib marka JDK uu tunnel-ka horay u dhisay.
Tusaalaha wuxuu dejiyaa waqti-xad xiriirka iyo waqti-xad akhrinta socket-ka; kuwaasi waa kontoroolo gooni ah, ma aha hal waqti-xad guud oo fadhi abka.
Fasaxa CONNECT weli waxaa leh proxy-ga. Barta dhamaadka gudbisa codsiyada web caadiga ah waxay diidi kartaa dekedda adeegga ama waxay dalban kartaa xaqiijin ka hor furista tunnel. Kala sooc guuldarradayaas server-ka aqbala tunnel-ka laakiin hadhow diida borotokoolka abkaaga.
Haddii borotokoolkaasu u baahan yahay TLS, ka wada xaajood TLS socket-ka ku xiran iyadoo la isticmaalayo magaca martigeliyaha loogu talagalay adeegga iyo hubinta shahaadada caadiga ah. CONNECT keligiis ma qariyo qulqulka. HTTP API dhab ah, macmiil HTTP ayaa weli ah is-dhexgalka ugu habboon sababtoo ah wuxuu sidoo kale maareeyaa fariimaha HTTP.