Cache-Control: no-cache ਨਾਲ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਡਾਊਨਲੋਡ ਦੀ ਮੁੜ ਪੁਸ਼ਟੀ ਕਰੋ
ਡਾਊਨਲੋਡ URL ਬਦਲੇ ਬਿਨਾਂ ਪੁਸ਼ਟੀ ਕੀਤਾ ਜਵਾਬ ਮੰਗੋ ਅਤੇ ਮੁੜ ਪੁਸ਼ਟੀ ਨੂੰ ਸਟੋਰੇਜ਼ ਉੱਤੇ ਪਾਬੰਦੀ ਨਾਲ ਨਾ ਰਲਾਓ।
ਡਾਊਨਲੋਡ URL ਸਹੀ ਹੈ, ਪਰ ਸਾਂਝੀ ਪ੍ਰੌਕਸੀ ਕੋਲ ਅਜੇ ਵੀ ਸਟੋਰ ਕੀਤਾ ਜਵਾਬ ਹੈ। ਜੇ ਕਾਰਵਾਈ ਨੂੰ ਮੂਲ ਨਾਲ ਪੁਸ਼ਟੀ ਕੀਤਾ ਜਵਾਬ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਉਹ ਸ਼ਰਤ ਬੇਨਤੀ ਉੱਤੇ ਰੱਖੋ:
from urllib.request import ProxyHandler, Request, build_opener
import shutil
opener = build_opener(ProxyHandler({
"https": "http://proxy.example:8080",
}))
request = Request(download_url, headers={"Cache-Control": "no-cache"})
with opener.open(request, timeout=15) as response:
shutil.copyfileobj(response, output)
ਇਹ ਟੁਕੜਾ ਮੰਨਦਾ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਕੋਲ ਬਾਇਨਰੀ ਆਉਟਪੁੱਟ ਸਟ੍ਰੀਮ ਹੈ ਅਤੇ ਇਹ HTTPS download_url ਦਿੰਦੀ ਹੈ। ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਡਾਊਨਲੋਡ ਅਜ਼ਮਾਉਣ ਲਈ, opener ਵਿੱਚ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਤੋਂ HTTP ਐਂਡਪੁਆਇੰਟ ਉਮੀਦਵਾਰ ਵਰਤੋ; ਬੇਨਤੀ ਦੀ ਕੈਸ਼ ਸ਼ਰਤ ਉਹੀ ਰਹਿੰਦੀ ਹੈ। ਇਹ ਮੂਲ ਸਰੋਤ ਦਾ URL ਰੱਖਦਾ ਹੈ ਅਤੇ ਬੇਨਤੀ ਮਾਰਗ ਦੇ ਕੈਸ਼ਾਂ ਨੂੰ ਮੁੜ ਵਰਤੋਂ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਕਹਿੰਦਾ ਹੈ।
ਪੁਸ਼ਟੀ ਸਟੋਰ ਕੀਤੇ ਬਾਈਟਾਂ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰ ਸਕਦੀ ਹੈ
no-cache ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੀ ਅਨੁਕੂਲ ਕੈਸ਼ ਮੂਲ ਨਾਲ ਸਫਲ ਪੁਸ਼ਟੀ ਤੋਂ ਬਿਨਾਂ ਸਟੋਰ ਕੀਤੇ ਜਵਾਬ ਤੋਂ ਇਹ ਬੇਨਤੀ ਪੂਰੀ ਨਹੀਂ ਕਰ ਸਕਦੀ। ਮੂਲ ਪੁਸ਼ਟੀ ਕਰ ਸਕਦਾ ਹੈ ਕਿ ਸਟੋਰ ਕੀਤੀ ਪੇਸ਼ਕਾਰੀ ਅਜੇ ਵੀ ਵੈਧ ਹੈ, ਇਸ ਲਈ ਕਾਰਵਾਈ ਨੂੰ ਮੂਲ ਤੋਂ ਅਣਬਦਲੀ ਫਾਈਲ ਮੁੜ ਭੇਜਣ ਦੀ ਲੋੜ ਨਹੀਂ।
ਬੇਨਤੀ ਦਾ max-age=0 ਉਮਰ ਸੀਮਾ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ ਉਦੋਂ ਲਾਹੇਵੰਦ ਹੈ ਜਦੋਂ ਐਪਲੀਕੇਸ਼ਨ ਉਸ ਸੀਮਾ ਤੋਂ ਪੁਰਾਣਾ ਨਾ ਹੋਣ ਵਾਲਾ ਜਵਾਬ ਚਾਹੁੰਦੀ ਹੈ, ਪਰ ਇਹ ਸਟੋਰੇਜ਼ ਉੱਤੇ ਪਾਬੰਦੀ ਨਹੀਂ। ਹੁਣੇ ਬਣਿਆ ਜਵਾਬ ਇਸ ਨੂੰ ਪੂਰਾ ਕਰ ਸਕਦਾ ਹੈ।
ਇੱਕ ਬੇਤਰਤੀਬ ਕੁਐਰੀ ਪੈਰਾਮੀਟਰ ਜੋੜਨਾ ਵੱਖਰਾ ਟਾਰਗਿਟ URI ਮੰਗਦਾ ਹੈ। ਇਹ ਹੋਰ ਕੈਸ਼ ਐਂਟਰੀ ਬਣਾ ਸਕਦਾ ਹੈ ਜਾਂ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਜਵਾਬ ਵੀ ਬਦਲ ਸਕਦਾ ਹੈ। ਕੁਐਰੀ ਪੈਰਾਮੀਟਰ ਸਿਰਫ਼ ਤਦ ਵਰਤੋ ਜਦੋਂ ਇਹ ਸਰੋਤ ਦੇ ਇੱਛਤ ਇੰਟਰਫੇਸ ਦਾ ਹਿੱਸਾ ਹੋਵੇ।
ਆਮ HTTPS CONNECT ਲਈ, ਟਨਲਿੰਗ ਪ੍ਰੌਕਸੀ TLS ਦੇ ਅੰਦਰ ਇਹ ਹੈਡਰ ਨਹੀਂ ਦੇਖ ਸਕਦੀ। ਨੀਤੀ ਫਿਰ ਵੀ ਮੂਲ ਅਤੇ ਡੀਕ੍ਰਿਪਟ ਕੀਤੇ HTTP ਵਟਾਂਦਰੇ ਨੂੰ ਸੰਭਾਲਣ ਵਾਲੇ ਕੈਸ਼ਾਂ ਤੱਕ ਪਹੁੰਚ ਸਕਦੀ ਹੈ। ਸਟੋਰ ਕੀਤੇ ਜਵਾਬ ਨੂੰ ਟਨਲ ਨੂੰ ਮੰਨਣ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚੋ ਕਿ ਇਹ ਅਸਲ ਵਿੱਚ ਕਿੱਥੇ ਹੈ।