এটা নিজা TCP প্ৰ'ট'কল এটা HTTP proxyৰ মাজেৰে যাব পাৰে যেতিয়া সেই proxy-এ গন্তব্যলৈ CONNECT অনুমতি দিয়ে। এপ্লিকেচন প্ৰ'ট'কলটো HTTP হ'ব লাগিব বুলি কোনো কথা নাই: HTTP-এ টানেলটো স্থাপন কৰে, তাৰ পিছত এপ্লিকেচনে তাৰ নিজস্ব বাইট বিনিময় কৰে।

OpenJDK 25-এ Socket(Proxy)-ত এটা HTTP proxy পথ আগবঢ়ায়। ইয়াৰ ৰূপায়ণে CONNECT বিনিময়টো সম্পন্ন কৰি এপ্লিকেচনে ব্যৱহাৰ কৰিবলৈ এটা সংযুক্ত ছকেট ঘূৰাই দিয়ে।

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 proxy তালিকাৰ পৰা HTTP প্ৰাৰ্থী বাছনি কৰক। proxy ঠিকনাটো হ'ল Java-এ প্ৰথমে সংযোগ কৰা ঠাই; connect-লৈ দিয়া ঠিকনাটোৱে proxy-য়ে উপনীত হ'ব লগা সেৱাটো চিনাক্ত কৰে।

অমীমাংসিত গন্তব্যে এই ৰূপায়ণৰ CONNECT অনুৰোধৰ বাবে ইয়াৰ হ'ষ্টনাম সংৰক্ষণ কৰে। কিন্তু মীমাংসিত InetSocketAddress-এ সেই অনুৰোধলৈ ইয়াৰ মীমাংসিত IP ঠিকনা যোগান ধৰে। এই পাৰ্থক্যটো গুৰুত্বপূৰ্ণ যেতিয়া proxy-য়ে সেৱাৰ নামটো মীমাংসা কৰিব লাগে বা হ'ষ্টনাম-ভিত্তিক নীতি প্ৰয়োগ কৰিব লাগে।

সফল সংযোগে আপোনাক কি দি যায়

ফলস্বৰূপ স্ৰোতবোৰে টানেল কৰা সেৱাৰ তথ্য কঢ়িয়ায়। সেয়া আপোনাৰ এপ্লিকেচনে পঢ়ি পেলাই দিব লগা সুকীয়া HTTP প্ৰতিক্ৰিয়া প্ৰকাশ নকৰে। দ্বিতীয় এটা CONNECT বিনিময় যোগ কৰিলে JDK-য়ে ইতিমধ্যে টানেল স্থাপন কৰাৰ পিছত সেৱাটোলৈ HTTP লিখা পঠিয়াব।

উদাহৰণটোৱে এটা সংযোগ সময়সীমা আৰু এটা ছকেট পঢ়াৰ সময়সীমা যোগান ধৰে; সেইবোৰ সুকীয়া নিয়ন্ত্ৰণ, এপ্লিকেচন অধিৱেশনৰ বাবে এটা সামগ্ৰিক অন্তিম সময় নহয়।

CONNECT অনুমতি এতিয়াও proxyৰ। সাধাৰণ ৱেব অনুৰোধ আগবঢ়োৱা এটা শেষ বিন্দুৱে সেৱাটোৰ প'ৰ্ট নাকচ কৰিব পাৰে বা টানেল খোলাৰ আগতে প্ৰমাণীকৰণ দাবী কৰিব পাৰে। সেই বিফলতাবোৰ টানেল গ্ৰহণ কৰি পিছত আপোনাৰ এপ্লিকেচন প্ৰ'ট'কল নাকচ কৰা চাৰ্ভাৰৰ পৰা সুকীয়াকৈ ৰাখক।

যদি সেই প্ৰ'ট'কলটোৰ TLS প্ৰয়োজন, তেন্তে সংযুক্ত ছকেটৰ মাজেৰে সেৱাটোৰ উদ্দেশ্যিত হ'ষ্টনাম আৰু স্বাভাৱিক প্ৰমাণপত্ৰ পৰীক্ষাৰ সৈতে TLS আলোচনা কৰক। CONNECT অকলেই স্ৰোতটো এনক্ৰিপ্ট নকৰে। প্ৰকৃত HTTP API-ৰ বাবে, HTTP ক্লায়েন্টে HTTP বাৰ্তাও পৰিচালনা কৰে বাবে অধিক সুবিধাজনক ইণ্টাৰফেচ হৈয়েই থাকে।

সম্পৰ্কিত প্ৰবন্ধ