download.part ਹੁਣ ਮੰਗਣ ਵਾਲੇ ਆਬਜੈਕਟ ਦੀ ਉਸੇ ਪੇਸ਼ਕਾਰੀ ਦਾ ਹਿੱਸਾ ਹੋਵੇ ਤਾਂ ਹੀ ਡਾਊਨਲੋਡ ਜਾਰੀ ਕਰੋ। ਸਿਰਫ਼ ਫਾਈਲ ਨਾਮ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ: ਮੂਲ ਸਰਵਰ ਪਹਿਲੀ ਕੋਸ਼ਿਸ਼ ਮਗਰੋਂ ਸਮੱਗਰੀ ਬਦਲ ਚੁੱਕਾ ਹੋ ਸਕਦਾ ਹੈ।

curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.bin

ਦੋਵੇਂ ਐਂਡਪੁਆਇੰਟ ਉਹਨਾਂ ਸੇਵਾਵਾਂ ਨਾਲ ਬਦਲੋ ਜਿਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਦਾ ਹੱਕ ਹੈ। ਜਿੱਥੇ ਜਨਤਕ ਪ੍ਰਾਕਸੀ ਮਨਜ਼ੂਰ ਹੋਵੇ ਉੱਥੇ ਜਨਤਕ ਫਾਈਲ ਦੀ ਤੁਲਨਾ ਲਈ HTTP ਪ੍ਰਾਕਸੀ ਸੂਚੀ ਵਿੱਚੋਂ HTTP ਐਂਡਪੁਆਇੰਟ ਚੁਣੋ। -C - ਮੌਜੂਦਾ ਫਾਈਲ ਦੇ ਆਕਾਰ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਦਾ ਬਿੰਦੂ ਬਣਾਉਂਦਾ ਹੈ। ਵਾਪਸ ਆਈ ਕਿਸੇ ਵੀ ਬਾਡੀ ਨੂੰ ਬਚੇ ਬਾਈਟ ਨਾ ਮੰਨ ਕੇ ਮੰਜ਼ਿਲ ਦਾ ਜਵਾਬ ਵੇਖੋ:

ਜਵਾਬਅਰਥ
Content-Range ਨਾਲ 206ਵੇਖੋ ਵਾਪਸ ਆਈ ਰੇਂਜ ਉਮੀਦ ਵਾਲਾ ਅਗਲਾ ਹਿੱਸਾ ਹੈ।
200ਸਰਵਰ ਨੇ ਸ਼ਾਇਦ Range ਅਣਡਿੱਠੀ ਕਰਕੇ ਪੂਰੀ ਪੇਸ਼ਕਾਰੀ ਭੇਜੀ ਹੋਵੇ।
416ਮੰਗੀ ਰੇਂਜ ਪੂਰੀ ਨਹੀਂ ਹੋ ਸਕਦੀ; ਗਲਤੀ ਦਾ ਪੰਨਾ ਫਾਈਲ ਨਾਲ ਨਾ ਜੋੜੋ।

ਵੈਲੀਡੇਟਰ ਅਤੇ If-Range ਬਦਲਦੇ ਸਰੋਤ ਦੇ ਵੱਖਰੇ ਵਰਜ਼ਨ ਜੋੜਨ ਤੋਂ ਬਚਾ ਸਕਦੇ ਹਨ। ਪੂਰੀ ਫਾਈਲ ਉੱਤੇ ਭਰੋਸੇ ਤੋਂ ਪਹਿਲਾਂ ਐਪ ਦੇ ਪੇਸ਼ਕਾਰੀ ਨਿਯਮ ਮੰਨੋ।

Squid 6.13 ਦਾ range_offset_limit ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਕੈਸ਼ ਲਈ ਆਬਜੈਕਟ ਕਦੋਂ ਸ਼ੁਰੂ ਤੋਂ ਲੈਣਾ ਹੈ, ਇਹ ਨਹੀਂ ਕਿ ਕਲਾਇੰਟ ਰੇਂਜ ਮੰਗ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ:

range_offset_limit 0

ਜ਼ੀਰੋ ਹੱਦ ਸਿਰਫ਼ ਕੈਸ਼ ਭਰਨ ਲਈ ਸ਼ੁਰੂ ਦਾ ਵਾਧੂ ਹਿੱਸਾ ਲੈਣ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ। ਆਬਜੈਕਟ ਕੈਸ਼ ਕੀਤੇ ਬਿਨਾਂ ਲਾਭਕਾਰੀ ਰੇਂਜ ਭੇਜਣਾ ਵੀ ਸਫਲ ਹੋ ਸਕਦਾ ਹੈ। ਆਮ HTTPS CONNECT ਵਿੱਚ Range ਲੈਣ-ਦੇਣ ਮੰਜ਼ਿਲ ਦੇ TLS ਅੰਦਰ ਹੁੰਦਾ ਹੈ; ਉਹ ਜਵਾਬ ਪੜ੍ਹੋ, Squid ਦੀ ਦਿਸਦੀ ਆਬਜੈਕਟ ਕੈਸ਼ ਨੀਤੀ ਨੂੰ ਅੰਦਰਲੀ ਬੇਨਤੀ ਦਾ ਕੰਟਰੋਲ ਨਾ ਮੰਨੋ।

ਸੰਬੰਧਿਤ ਲੇਖ