ప్రాక్సీ ద్వారా వచ్చిన ప్రతిస్పందన సాపేక్ష 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 నిర్మాణానికి చెందుతుందా లేక తర్వాత ప్రయత్నించిన కనెక్షన్కు చెందుతుందా అని చూపుతాయి.

సంబంధిత వ్యాసాలు