ដើរតាមការបង្វែរទំព័រដែលទាក់ទងតាមរយៈប្រូកស៊ី
ដោះស្រាយ Location ដែលទាក់ទងទៅនឹង URL គោលដៅបច្ចុប្បន្ន ដោយរក្សាអាសយដ្ឋានប្រូកស៊ីចេញពីការដោះស្រាយ 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 ឬការតភ្ជាប់ដែលបានព្យាយាមបន្ទាប់។