প্রক্সির মাধ্যমে আপেক্ষিক Location অনুসরণ করুন
বর্তমান গন্তব্য URL-এর সাপেক্ষে আপেক্ষিক Location সমাধান করুন, প্রক্সি ঠিকানা URL সমাধানের বাইরে রেখে।
প্রক্সির মাধ্যমে পাওয়া প্রতিক্রিয়া একটি আপেক্ষিক Location ফেরত দিতে পারে:
Location: ../new/
আধুনিক HTTP এখানে একটি URI রেফারেন্স অনুমোদন করে। প্রতিক্রিয়া তৈরি করা URL-এর সাপেক্ষে এটি সমাধান করুন। সেই URL যদি https://docs.example/catalog/old/ হয়, উপরের রেফারেন্সটি https://docs.example/catalog/new/ নির্দেশ করে। প্রক্সির হোস্টনেম ভিত্তি নয়।
সাধারণ Python urllib অনুরোধের জন্য প্রক্সি এন্ডপয়েন্টের চারপাশে স্ট্রিং জোড়া দেওয়ার বদলে এর রিডাইরেক্ট হ্যান্ডলার ব্যবহার করুন:
opener = build_opener(ProxyHandler({
"https": "http://proxy.example:8080",
}))
with opener.open("https://docs.example/catalog/old/",
timeout=15) as response:
final_url = response.geturl()
প্রক্সি প্রমাণীকরণ ছাড়া এই পাবলিক নথির অনুরোধের জন্য HTTP প্রক্সি তালিকা থেকে একটি HTTP প্রার্থী উদাহরণ এন্ডপয়েন্ট প্রতিস্থাপন করতে পারে, যদি পথটি অনুমোদিত হয়। ক্লাসগুলো urllib.request থেকে আসে। এর স্বাভাবিক হ্যান্ডলার নিজের সীমার মধ্যে সমর্থিত রিডাইরেক্ট অনুসরণ করে। final_url চূড়ান্ত রিসোর্স URL বর্ণনা করে, সেখানে পৌঁছাতে ব্যবহৃত মধ্যস্থতাকারীকে নয়।
প্রথমে সমাধান করুন, তারপর পরবর্তী পথ বেছে নিন
রিডাইরেক্ট গন্তব্য হোস্ট বা স্কিম বদলাতে পারে। তাই গন্তব্য-ভিত্তিক প্রক্সি নীতিকে সেই নতুন URL-ও মূল্যায়ন করতে হবে। প্রথম হোস্টের জন্য কাজ করা পথ পরেরটির জন্য নাও হতে পারে।
নিজে রিডাইরেক্ট হ্যান্ডলিং বাস্তবায়ন করলে ডট-সেগমেন্ট হ্যান্ডলিংসহ URI-রেফারেন্স সমাধান ব্যবহার করুন। প্রকৃত স্ট্যাটাস কোডের মেথড নিয়ম সংরক্ষণ করুন এবং রিডাইরেক্ট সীমা আরোপ করুন। হোস্টনেমে Location জুড়ে দেওয়া সেই সমাধান অ্যালগরিদমের বিকল্প নয়।
রিডাইরেক্ট ব্যর্থ হলে অনুরোধকৃত URL, প্রতিক্রিয়া স্ট্যাটাস, Location মান এবং সমাধানকৃত পরবর্তী URL রেখে দিন। এই চারটি মান সাধারণত দেখায় যে ব্যর্থতা URL নির্মাণে, নাকি পরে চেষ্টা করা সংযোগে।