ப்ராக்ஸி வழியாக ஒப்பீட்டு மறுவழியமைப்பைப் பின்பற்றுதல்
தற்போதைய இலக்கு 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 கட்டமைப்பைச் சேர்ந்ததா அல்லது பின்னர் முயற்சித்த இணைப்பைச் சேர்ந்ததா என்பதைக் காட்டுகின்றன.