ការឆ្លើយតបដែលទទួលបានតាមរយៈប្រូកស៊ីអាចត្រឡប់ 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 ឬការតភ្ជាប់ដែលបានព្យាយាមបន្ទាប់។

អត្ថបទពាក់ព័ន្ធ