Python সর্বদা CONNECT-এর জন্য HTTP/1.0 পাঠায় এই পুরোনো বক্তব্য আর নিরাপদ সাধারণ নিয়ম নয়। Python 3.12 http.client-এর টানেলিং HTTP/1.1-এ পরিবর্তন করেছে এবং Host হেডার সরবরাহ না করা হলে স্বয়ংক্রিয়ভাবে তৈরি করার সুবিধা যোগ করেছে।

এই পরিবর্তনটি নথিভুক্ত স্ট্যান্ডার্ড-লাইব্রেরি বাস্তবায়নের অংশ। উঁচু স্তরের HTTP লাইব্রেরি টানেলের আচরণ উপেক্ষা বা মোড়ক করতে পারে, তাই এর সংস্করণের সঙ্গে Python-এর সংস্করণও লিখে রাখুন।

যদি প্রক্সি টানেল প্রত্যাখ্যান করে, তবে ওই ক্লায়েন্ট আসলে যে CONNECT বিনিময় তৈরি করেছে তা পরীক্ষা করুন। গন্তব্য অনুরোধের HTTP সংস্করণ বদলানো বা ওয়েবসাইট অনুরোধে Host হেডার যোগ করা আগের টানেল অনুরোধ বদলে দিতেই হবে না।

একইভাবে, পুরোনো Requests অ্যাডাপ্টার উদাহরণে ব্যক্তিগত ক্ষেত্র সম্পাদনা করলে অ্যাপ্লিকেশনটি অপ্রচলিত অভ্যন্তরীণ API-তে আটকে যেতে পারে। সামঞ্জস্যপূর্ণ সমর্থিত ক্লায়েন্ট ও রানটাইম সমন্বয় এবং নথিভুক্ত প্রক্সি সংহতি পছন্দ করুন।

প্রতিবেদনে দুটি কথোপকথন আলাদা রাখুন: টানেল খুলতে ব্যবহৃত HTTP অনুরোধ, তারপর তার ভিতরে গন্তব্যের সঙ্গে যে প্রোটোকল নিয়ে আলোচনা হয়েছে। তারা ভিন্ন সংস্করণ ব্যবহার করতে পারে এবং ভিন্ন পর্যায়ে ব্যর্থ হতে পারে।

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