ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಸಾಪೇಕ್ಷ ಮರುನಿರ್ದೇಶನವನ್ನು ಅನುಸರಿಸಿ
ಪ್ರಸ್ತುತ ಗುರಿ 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 ನಿರ್ಮಾಣಕ್ಕೆ ಸೇರಿದೆಯೇ ಅಥವಾ ನಂತರ ಪ್ರಯತ್ನಿಸಿದ ಸಂಪರ್ಕಕ್ಕೆ ಸೇರಿದೆಯೇ ಎಂದು ತೋರಿಸುತ್ತವೆ.