HTTP/2 এ Go ৰ SOCKS টানেলৰ ভিতৰত সোমায়
মানক HTTP পৰিবহণ ক্লোন কৰক, SOCKS প্ৰক্সি বাছনি কৰক আৰু প্ৰকৃততে আলোচনা কৰা গন্তব্য প্ৰটোকল পৰীক্ষা কৰক।
এটা SOCKS টানেলে এটা TCP সংযোগ কঢ়িয়াই লৈ যায়। Go এ সেই টানেলৰ মাজেৰে গন্তব্ୟৰ সৈতে TLS কৰিব পাৰে আৰু তাত HTTP/2 আলোচনা কৰিব পাৰে; SOCKS চাৰ্ভাৰে নিজে HTTP/2 ক’ব নালাগে।
Go ৰ মানক পূৰ্বনিৰ্ধাৰিত পৰিবহণ ৰখা এটা প্ৰগ্ৰেমত, তাৰ সংৰচনা ক্লোন কৰক আৰু প্ৰক্সি বাছনি কৰক:
import (
"net/http"
"net/url"
"time"
)
proxyURL := &url.URL{
Scheme: "socks5",
Host: "proxy.example:1080",
}
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}
প্ৰক্সি আৰু গন্তব্ୟ বেলেগ বেলেগ মান হৈয়ে থাকে। প্ৰক্সি মানৰ বাবে SOCKS5 প্ৰক্সি তালিকাৰ পৰা এটা SOCKS5 এণ্ডপইণ্ট বাছনি কৰক; HTTP/2 এতিয়াও গন্তব্ୟৰ সৈতে আলোচনা কৰা হয়। প্ৰকৃত HTTPS সেৱা URL অনুৰোধ কৰিবলৈ client ব্যৱহাৰ কৰক, তাৰ পিছত এপ্লিকেচনৰ স্বাভাৱিক জীৱনচক্ৰৰ জৰিয়তে প্ৰতিক্ৰিয়াৰ মূল অংশ বন্ধ কৰক।
মানক পূৰ্বনিৰ্ধাৰিত পৰিবহণে HTTP/2 সমৰ্থন কৰে। ইয়াক ক্লোন কৰিলে সেই সংৰচনা ৰক্ষা হয় আৰু প্ৰক্সিৰ বাছনি সলনি কৰিব পাৰি। টাইপ এছাৰ্চনে ধৰি লয় যে প্ৰগ্ৰেমে http.DefaultTransport ক আন RoundTripper ৰে সলনি কৰা নাই।
ছুটীয়াকৈ নিৰ্মিত পৰিবহণৰ বাবে, তাৰ HTTP/2 সংৰচনা পৰ্যালোচনা কৰক, বিশেষকৈ কাষ্টম dial বা TLS হুক যোগান ধৰোঁতে। Go এ ForceAttemptHTTP2 আৰু নতুন সংস্কৰণত সেই বাছনিসমূহৰ বাবে স্পষ্ট Protocols সংৰচনা প্ৰকাশ কৰে।
গন্তব্ୟই এতিয়াও TLS আলোচনাৰ জৰিয়তে HTTP/2 আগবঢ়াব লাগিব। কি ব্যৱহাৰ হৈছিল দেখিবলৈ সফল প্ৰতিক্ৰিয়াৰ Proto বা ProtoMajor মান পৰীক্ষা কৰক। SOCKS ৰ মাজেৰে সফল হোৱা HTTPS অনুৰোধে নিজেই প্ৰমাণ নকৰে যে আলোচনা কৰা প্ৰটোকল HTTP/2 আছিল।