خۇسۇسىي TCP پروتوكولى ۋاكالەتچى مەنزىلگە CONNECT قىلىشقا رۇخسەت قىلغاندا HTTP ۋاكالەتچىدىن ئۆتەلەيدۇ. ئەپ پروتوكولى چوقۇم HTTP بولۇشى كەتمەيدۇ: HTTP تۇنېلنى قۇرىدۇ، ئاندىن ئەپ ئۆزىنىڭ بايتلىرىنى ئۇنىڭ ئىچىدە ئالماشتۇرىدۇ.

OpenJDK 25 Socket(Proxy) دىن HTTP ۋاكالەتچى يولىنى تەمىنلەيدۇ. ئۇنىڭ ئىجراسى CONNECT ئالماشتۇرۇشىنى ئېلىپ بارىدۇ ۋە ئەپ ئىشلىتىشى ئۈچۈن ئۇلانغان socket قايتۇرىدۇ.

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();
}

بۇ پارچە java.net ۋە java.io دىكى سىنىپلارنى ئىشلىتىدۇ. ئىككى ئاخىرقى نۇقتىنى ئالماشتۇرۇڭ ۋە try بۆلىكىدىن چىقىشتىن بۇرۇن پروتوكول ئالماشتۇرۇشىنى ئېلىپ بېرىڭ. رۇخسەت قىلىنغان ئاممىۋى TCP نىشانى ئۈچۈن، شۇ نىشاننىڭ پورتىغا CONNECT رۇخسىتىنى تەكشۈرگەندىن كېيىنلا HTTP ۋاكالەتچى تىزىملىكىدىن HTTP نامزاتلىرىنى تاللاڭ. ۋاكالەتچى ئادرېسى Java ئالدى بىلەن ئۇلىنىدىغان جاي؛ connect غا بېرىلگەن ئادرېس ۋاكالەتچى يېتىشى كېرەك بولغان مۇلازىمەتنى كۆرسىتىدۇ.

ھەل قىلىنمىغان مەنزىل بۇ ئىجرانىڭ CONNECT تەلىپى ئۈچۈن خوست نامىنى ساقلايدۇ. ھەل قىلىنغان InetSocketAddress بولسا شۇ تەلەپكە ھەل قىلىنغان IP ئادرېسىنى بېرىدۇ. بۇ پەرق ۋاكالەتچى مۇلازىمەت نامىنى ھەل قىلىشقا ياكى خوست نامىغا ئاساسلانغان سىياسەتنى قوللىنىشقا مەجبۇر بولغاندا مۇھىم.

مۇۋەپپەقىيەتلىك ئۇلىنىش سىزگە نېمە قالدۇرىدۇ

ھاسىل بولغان ئېقىملار تۇنېل ئىچىدىكى مۇلازىمەتنىڭ سانلىق مەلۇماتىنى توشىدۇ. ئۇلار ئەپىڭىز ئوقۇپ تاشلىشى كېرەك بولغان ئايرىم HTTP ئىنكاسىنى ئاشكارىلىمايدۇ. ئىككىنچى CONNECT ئالماشتۇرۇشىنى قوشسا، JDK تۇنېلنى ئاللىبۇرۇن قۇرۇپ بولغاندىن كېيىن مۇلازىمەتكە HTTP تېكىستى ئەۋەتىلەتتى.

مىسال ئۇلىنىش ۋاقىت چېكى ۋە socket ئوقۇش ۋاقىت چېكىنى بەلگىلەيدۇ؛ بۇلار ئايرىم كونتروللار، ئەپ سېسىيىسى ئۈچۈن بىر ئومۇمىي ئاخىرقى مۇددەت ئەمەس.

CONNECT رۇخسىتى يەنىلا ۋاكالەتچىگە تەۋە. ئادەتتىكى تور تەلەپلىرىنى يوللايدىغان ئاخىرقى نۇقتا مۇلازىمەتنىڭ پورتىنى رەت قىلىشى ياكى تۇنېل ئېچىشتىن بۇرۇن دەلىللەش تەلەپ قىلىشى مۇمكىن. بۇ مەغلۇبىيەتلەرنى تۇنېلنى قوبۇل قىلىپ كېيىن ئەپ پروتوكولىڭىزنى رەت قىلىدىغان مۇلازىمېتىردىن ئايرىم ساقلاڭ.

ئەگەر بۇ پروتوكول TLS غا موھتاج بولسا، ئۇلانغان socket ئارقىلىق مۇلازىمەتنىڭ مۆلچەردىكى خوست نامى ۋە نورمال گۇۋاھنامە تەكشۈرۈشلىرى بىلەن TLS سۆھبەتلىشىڭ. CONNECT يالغۇز ئېقىمنى شىفلىمايدۇ. ھەقىقىي HTTP API ئۈچۈن، HTTP خېرىدارى HTTP ئۇچۇرلىرىنىمۇ بىر تەرەپ قىلغاچقا تېخىمۇ قولايلىق كۆرۈنمە يۈزى بولۇپ قالىدۇ.

مۇناسىۋەتلىك ماقالىلەر